我有列列表,我需要将除了两列的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);
Run Code Online (Sandbox Code Playgroud)
提前致谢
Jon*_*eet 12
我已经使用以下代码来实现它并且工作正常,但有没有快速或简单的方法来实现相同的目的?
在我看来,有一种更清晰的方法来实现它 - 只是不要使用lambdas等:
foreach (var item in DisplayColumns)
{
item.IsSelected = item.ColumnName != "Bug" && item.ColumnName != "Feature";
}
Run Code Online (Sandbox Code Playgroud)
您可以一次性做出决定 - false如果列名称是"bug"或"feature"; 这是true其他.当您想要使用集合中的每个项目执行某些代码时,C#语言具有非常好的循环结构时,您不需要调用ToList和使用.ForEachforeach
我喜欢LINQ - 这太棒了 - 但它的最佳点是查询(因此是Q)而不是操纵.在这种情况下,只有ToList部分甚至是LINQ的一部分 - List<T>.ForEach在LINQ之前在.NET 2.0中引入.
当然,您可以立即分配IsSelected.
DisplayColumns.ToList().ForEach(a => a.IsSelected = !(a.ColumnName == "Bug" || a.ColumnName == "Feature"));
Run Code Online (Sandbox Code Playgroud)