C# ';如果';List.ForEach()中的指令
我知道在SO的lambda语句中有很多关于“if”的问题。对不起,如果是重复的话,我真的找不到答案 我有这个代码,它工作得很好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
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); });