【发布时间】:2020-08-14 07:22:03
【问题描述】:
假设我有一个具有以下属性的对象类 MyObject:
class MyObject {
public int MyProperty1 { get; set; }
public int MyProperty2 { get; set; }
public int MyProperty3 { get; set; }
}
我有一个 MyObject[] 数组,其中包含以下元素:
MyObject[] myObjects => new MyObject[] { myObject1, myObject2, myObject3 };
我如何创建一个新实例 myObject 使其 MyProperty1、MyProperty2 和 MyProperty3 是数组中每个此类对象各自属性的总和?
目前我的实现如下
MyObject MyObjectSummed => new MyObject()
{
MyProperty1 = myObjects.Sum(x => x.MyProperty1);
MyProperty2 = myObjects.Sum(x => x.MyProperty2);
MyProperty3 = myObjects.Sum(x => x.MyProperty3);
}
但我依稀记得看到过一种更有效的方法,即使用 LINQ,使用一行代码。
这可能吗?有人可以指出正确的方向吗?
谢谢!
【问题讨论】:
-
看看聚合扩展方法。 stackoverflow.com/questions/7105505/…
-
出于兴趣比较 Aggregate 与 foreach 性能的小示例:ideone.com/RliVVp