我有课
Class MyObject
{
decimal v1;
decimal dv1;
decimal v2;
decimal dv2;
}
和一个
List<MyObject> ...
我需要通过将 dv1 添加到 v1 并将 dv2 添加到 v2 来处理列表中的每个元素 类似于(伪语法):
myList.Transform(o=>o.v1+=o.dv1, o.v2+=o.dv2)
我该怎么做(显然我的伪语法不起作用)?
谢谢
最佳答案
LINQ 用于获取给定枚举的子集或使用列表中的新类型创建枚举。
要操作给定列表,LINQ 不是操作给定列表的正确工具。要完成你的任务,你应该像这样进行 foreach 循环
foreach(var item in objects)
{
item.v1 += obj.dv1;
}
你可以做的是预先选择,通过这样的方式从你想要的对象中选择哪些元素
foreach(var item in object.Where(o => o.v1 % 2 == 0))
就像其他人提到的那样,您可以自己实现一个 ForEach()
扩展方法,但它不存在是有原因的:
看看Erics Blog entry .
关于c# - LINQ:如何通过对每个元素执行计算来转换列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995516/