List.ForEach()中的'if'指令

时间:2015-10-14 21:04:33

标签: 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()

我试过了:

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

myList.ForEach(A => f.second < _width ? verified.Add(A):do_nothing());

但它不起作用。每当我尝试添加“if”时,就会出错。

2 个答案:

答案 0 :(得分:7)

改为使用Where

var verified = myList.Where(item => item.second <= _width).ToList();

答案 1 :(得分:6)

试试这个:

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

除了单个陈述之外,你需要大括号。