C# 带条件语句的泛型列表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循环来获取泛型列表项,该列表项迭代所有项,但我希望获取特定项,并附带一个条件。 我是这样做的:

 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);