这纯粹是为了简化代码并使其更具可读性。
我在计算机上打印出一份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;
答案 0 :(得分:0)
如果您在此声明后未使用您的列表,则可以执行以下操作:
ServiceController.GetServices()
.OrderBy(x => x.DisplayName)
.ToList()
.ForEach(x => txbMain.Text += x.DisplayName + Environment.NewLine);
请注意,无论如何它都会在内部执行foreach循环。
更糟糕的是,首先必须在使用ForEach方法之前创建一个列表,这非常耗时。
请参阅Eric Lippert's post about it。
也许你应该坚持使用foreach循环。