【问题标题】:Adding object variables from a list从列表中添加对象变量
【发布时间】:2021-11-13 11:47:37
【问题描述】:

对象属于调用外部对象类的列表

我想简化以下代码行

int TotalObjectVarN3 = (Object1.variable3 + Object2.variable3 + Object3.variable3 + Object3.variable3);

【问题讨论】:

  • 如果对象在集合中(例如 List<MyClass>),您可以使用 LINQ:myCollection.Sum(o => o.variable3) 或相应的循环

标签: c# list object


【解决方案1】:

System.Linq.Enumerable.Sum 中的This overload 应该很适合您:

计算通过对输入序列的每个元素调用变换函数获得的 Int32 值序列的总和。

在这种情况下,“转换函数”将是一个 Func<TSource, Int32>,它返回项目的 variable3 属性值(例如 obj => obj.variable3)。

你可以这样使用它:

int TotalObjectVarN3 = new []{ Object1, Object2, Object3 }.Sum(obj => obj.variable3);

【讨论】:

    【解决方案2】:

    这个是使用 LINQ 实现的

    int TotalObjectVarN3 = MyList.Sum(o => o.variable3):

    【讨论】:

      【解决方案3】:

      使用Select 是一个选项,后跟Sum 方法。选择将序列的每个元素投影到新表单中。

      list.Select(i => i.variable3).Sum();
      

      更多关于Select - https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.select?view=net-5.0

      【讨论】:

        猜你喜欢
        • 2010-11-09
        • 1970-01-01
        • 2013-04-13
        • 1970-01-01
        • 1970-01-01
        • 2011-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多