在C#中优化Linq

哈菲兹·H

我有一个列列表,除两列外,我需要为所有列分配Isselected为true。(错误和功能)。我已经使用下面的代码来实现它并正常工作,但是有没有快速或简便的方法来实现这一目标?

DisplayColumns.ToList().ForEach(a => a.IsSelected = true);
DisplayColumns.ToList().Where(a => a.ColumnName == "Bug" ||    a.ColumnName == "Feature").ToList().ForEach(a => a.IsSelected = false);

提前致谢

乔恩·斯基特

我已经使用下面的代码来实现它并正常工作,但是有没有快速或简便的方法来实现这一目标?

好吧,在我看来,有一种更清洁的方法可以实现它-根本就不要使用lambda等:

foreach (var item in DisplayColumns)
{
    item.IsSelected = item.ColumnName != "Bug" && item.ColumnName != "Feature";
}

您可以一口气做出决定-false列名是“ bug”还是“ feature”;这是true其他。而且,当您想使用集合中的每个项目执行某些代码时,C#语言具有完美的循环构造时,您无需调用ToList和使用ForEachforeach

我喜欢LINQ-很棒-但它的优点是查询(因此称为Q)而不是操纵。在这种情况下,只有ToList一部分甚至是LINQ的一部分-List<T>.ForEach在LINQ之前在.NET 2.0中引入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章