C# 带条件语句的泛型列表Foreach循环
我使用foreach循环来获取泛型列表项,该列表项迭代所有项,但我希望获取特定项,并附带一个条件。 我是这样做的:C# 带条件语句的泛型列表Foreach循环,c#,list,generics,foreach,conditional-statements,C#,List,Generics,Foreach,Conditional Statements,我使用foreach循环来获取泛型列表项,该列表项迭代所有项,但我希望获取特定项,并附带一个条件。 我是这样做的: foreach (FilesToProcessDataModels item in ListfilesToProcess) { if (item.IsChecked) { //file operations }
foreach (FilesToProcessDataModels item in ListfilesToProcess)
{
if (item.IsChecked)
{
//file operations
}
}
有没有什么方法可以不用if语句在foreach循环中迭代数据where item.IsChecked==true。您可以使用Linq where:
使用
这是怎么回事?在问这个问题之前你有没有调查过LINQ?根据我对你上一个问题的回答:一般来说,当你想摆脱一个循环或简化它时,你应该看看LINQ。@I4V:那只是计数而已。这是在做其他的操作。但从上一个问题开始,OP似乎还没有对LINQ做过任何研究:没有迹象表明在这里使用ToList是合适的。OP只想对过滤序列中的每个元素执行一个操作,而foreach循环就可以了。谢谢。我的最后一个问题是关于计数的,与这个问题无关。我使用它就像ListFileToProcess中的foreach FileToProcessDataModels项一样。Whereitem=>item.IsChecked并且它工作得很好。
var checkedItems = ListfilesToProcess.Where(i => i.IsChecked);
foreach (FilesToProcessDataModels item in checkedItems)
{
// file operations
}
var foo = ListfilesToProcess.Where(i => i.IsChecked);