One*_*way 2 c# lambda generic-list
我将如何使用lambda使用List执行此操作
List<Foo> list....// create and add a bunch of Foo
int seconds = 100;
list.FindAll(x=>(x.Seconds == 0).Seconds = seconds) // yes I know that wont work...
Run Code Online (Sandbox Code Playgroud)
换句话说,找到Seconds == 0的所有foo对象并将值更改为我的局部变量...
我不想循环列表...我相信有一种方法可以用一个简单的lambda方法来做到这一点......
任何帮助赞赏
单程
Jon*_*eet 10
好吧,你可以这样做:
list.FindAll(x => x.Seconds == 0)
.ForEach(x => x.Seconds = seconds);
Run Code Online (Sandbox Code Playgroud)
就个人而言,我更喜欢旁边效果部分的显式循环:
foreach (var x in list.Where(x => x.Seconds == 0))
{
x.Seconds = seconds;
}
Run Code Online (Sandbox Code Playgroud)
(顺便提一下,我假设这是一个引用类型.如果它是一个值类型,那么为什么它不起作用会有各种其他原因.)
编辑:您可能希望看看Eric Lippert对此事的看法.
| 归档时间: |
|
| 查看次数: |
14497 次 |
| 最近记录: |