bza*_*fir 2 c# linq sum transform
我上课了
Class MyObject
{
decimal v1;
decimal dv1;
decimal v2;
decimal dv2;
}
Run Code Online (Sandbox Code Playgroud)
和a
List<MyObject> ...
Run Code Online (Sandbox Code Playgroud)
我需要通过将dv1添加到v1并将dv2添加到v2来处理列表的每个元素.(伪语法):
myList.Transform(o=>o.v1+=o.dv1, o.v2+=o.dv2)
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做(显然我的伪语法不起作用)?
谢谢
LINQ用于获取给定枚举的子集,或者使用列表中的新类型创建枚举.
要操作给定列表,LINQ不是操作给定列表的正确工具.要完成你的任务,你应该采取类似的foreach循环
foreach(var item in objects)
{
item.v1 += obj.dv1;
}
Run Code Online (Sandbox Code Playgroud)
你可以做的是预先选择,你想要的对象中的哪些元素是这样的
foreach(var item in object.Where(o => o.v1 % 2 == 0))
Run Code Online (Sandbox Code Playgroud)
像其他提到的一样,你可以自己实现一个ForEach()扩展方法,但是有一个原因它不存在:
看看Erics Blog条目.
您可以使用List的ForEach方法:
List<MyObject> objects = new List<MyObject>();
// Populate list.
objects.ForEach(obj => {
obj.v1 += obj.dv1;
obj.v2 += obj.dv2;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2578 次 |
| 最近记录: |