0

这纯粹是为了简化代码并使其更具可读性。

我在我的计算机上打印出一个 Windows 服务列表。这样做时,我调用ServiceController.GetServices()并检索服务数组。但我更愿意将它放在一个强类型列表中并将其打印到我的 txbMain 文本框中。我已经用 3 行代码完成了这两件事。但是有没有办法在第一行打印到 txbMain 这样我就可以避免 foreach 循环?

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 方法之前,它首先必须创建一个列表,这很耗时。

请参阅Eric Lippert 的帖子

也许你应该坚持你的 foreach 循环。

于 2013-02-18T14:34:16.473 回答