LINQ表达式应该在foreach循环中使用吗?

Cod*_*man 1 c# linq

方法1:

var list = processQueue.Where(item => item.Priority < 6);

foreach (var item in list)
{
    Console.WriteLine("Priority : {0}, Name : {1}", item.Priority, item.Name);
}
Run Code Online (Sandbox Code Playgroud)

方法2:

foreach (var item in processQueue.Where(item => item.Priority <6))
{
    Console.WriteLine("Priority : {0}, Name : {1}", item.Priority, item.Name);
}
Run Code Online (Sandbox Code Playgroud)

一种方法优于另一种方法的优势是什么?

dca*_*tro 6

  1. 你是否需要在循环以外的任何其他地方使用该列表?
  2. 在循环语句中包含linq查询是否会降低您的代码的可读性?
  3. (正如Dan Puzey所指出的那样)你是否认为自己需要list在调试时检查内容?

如果您对所有三个问题都回答"否",那么请继续将其作为循环的一部分.

  • 具有单独的变量也可用于调试目的(例如,当单步执行代码时). (3认同)