我知道在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()
?
我试过了:
myList.ForEach(A => if (A.second < _width) verified.Add(A));
和
myList.ForEach(A => f.second < _width ? verified.Add(A):do_nothing());
但它不起作用。每当我尝试添加“if”时,就会出错。
答案 0 :(得分:7)
改为使用Where:
var verified = myList.Where(item => item.second <= _width).ToList();
答案 1 :(得分:6)
试试这个:
myList.ForEach(A => { if (A.second < _width) verified.Add(A); });
除了单个陈述之外,你需要大括号。