C# ';如果';List.ForEach()中的指令

C# ';如果';List.ForEach()中的指令,c#,.net,list,foreach,C#,.net,List,Foreach,我知道在SO的lambda语句中有很多关于“if”的问题。对不起,如果是重复的话,我真的找不到答案 我有这个代码,它工作得很好 foreach (Pair<Myclass, int> A in myList) //mylist is List<Pair<Myclass, int>> if (A.second <= _width) verified.Add(A); 及 myList.ForEach(A=>f

我知道在SO的lambda语句中有很多关于“if”的问题。对不起,如果是重复的话,我真的找不到答案

我有这个代码,它工作得很好

    foreach (Pair<Myclass, int> A in myList) //mylist is List<Pair<Myclass, int>>
        if (A.second <= _width)
            verified.Add(A);

myList.ForEach(A=>f.second<\u width?verified.Add(A):什么都不做();
但它不起作用。每次我尝试添加“如果”时,都会出现问题。

请改用:

var verified=myList.Where(item=>item.second尝试以下操作:

myList.ForEach(A => { if (A.second < _width) verified.Add(A); });
myList.ForEach(A=>{if(A.second<_width)verified.Add(A);});

除了一条语句之外,任何语句都需要大括号。

您可以使用它来代替LINQ。看起来不错,但是编译器说我的
列表
还没有
Where
方法如果已验证(并且是一个列表),那么使用
验证的.AddRange(myList.Where)可能更好(item=>item.second@StepanLoginov使用System.Linq
添加到文件顶部,并导入Where方法(这是一种称为扩展方法的方法)
myList.ForEach(A => f.second < _width ? verified.Add(A):do_nothing());
var verified = myList.Where(item => item.second <= _width).ToList();
myList.ForEach(A => { if (A.second < _width) verified.Add(A); });