0

これは純粋にコードを単純化し、読みやすくするためです。

コンピューターの Windows サービスの一覧を印刷します。その際、 を呼び出してServiceController.GetServices()、サービスの配列を取得します。しかし、厳密に型指定されたリストで取得し、txbMain テキスト ボックスに出力したいと思います。私はこれらの両方を 3 行のコードで管理しました。しかし、foreach ループを回避できるように、最初の行で txbMain に出力する方法はありますか?

List<ServiceController> list = ServiceController.GetServices()
    .OrderBy(x => x.DisplayName)
    .ToList();

foreach (ServiceController sc in list)
    txbMain.Text += sc.DisplayName + Environment.NewLine;
4

1 に答える 1

0

このステートメントの後にリストを使用しない場合は、次のことができます。

ServiceController.GetServices()
    .OrderBy(x => x.DisplayName)
    .ToList()
    .ForEach(x => txbMain.Text += x.DisplayName + Environment.NewLine);

とにかく、内部でforeachループを実行することに注意してください。

さらに悪いことに、ForEachメソッドを使用する前に、まずリストを作成する必要がありますが、これには時間がかかります。

それについてのEricLippertの投稿を参照してください。

たぶん、foreachループに固執する必要があります。

于 2013-02-18T14:34:16.473 に答える