Ste*_*nov 0 .net c# foreach list
我知道在SO的lambda语句中有很多关于"if"的问题.对不起,如果它是重复,但我真的找不到答案.
我有这个代码,它运作良好
foreach (Pair<Myclass, int> A in myList) //mylist is List<Pair<Myclass, int>>
if (A.second <= _width)
verified.Add(A);
Run Code Online (Sandbox Code Playgroud)
是否有可能替换它myList.ForEach()?
我试过了:
myList.ForEach(A => if (A.second < _width) verified.Add(A));
Run Code Online (Sandbox Code Playgroud)
和
myList.ForEach(A => f.second < _width ? verified.Add(A):do_nothing());
Run Code Online (Sandbox Code Playgroud)
但它不起作用.每次当我尝试添加'if'时,事情都会出错.
使用Where代替:
var verified = myList.Where(item => item.second <= _width).ToList();
Run Code Online (Sandbox Code Playgroud)
试试这个:
myList.ForEach(A => { if (A.second < _width) verified.Add(A); });
Run Code Online (Sandbox Code Playgroud)
除了单个语句之外,您还需要大括号.