我需要迭代一个对象列表,只为布尔属性设置为true的对象做一些事情.我正在讨论这段代码
foreach (RouteParameter parameter in parameters.Where(p => p.Condition))
{ //do something }
Run Code Online (Sandbox Code Playgroud)
和这段代码
foreach (RouteParameter parameter in parameters)
{
if !parameter.Condition
continue;
//do something
}
Run Code Online (Sandbox Code Playgroud)
第一个代码显然更干净,但我怀疑它会在列表上循环两次 - 一次用于查询,一次用于foreach.这会不会是一个巨大的名单,所以我不是太在意性能,但两次循环刚的想法的错误我.
问题:如果没有循环两次,是否有一种干净/漂亮的方式来编写它?