使用 LINQ 合并 2 个列表并对多个属性求和

2023-12-29

我有一个包含以下属性的类:

public class SomeClass()
{
public Int32 ObjectId1 {get;set;}
public Int32 ObjectId2 {get;set;}
public Int32 ActiveThickeness {get;set;}
public Int32 ActiveFilterThickness {get;set;}
}

我还有 2 个清单:

List<SomeClass> A
List<SomeClass> B

列表A有数据:

| ObjectId1 | ObjectId2 | ActiveThickness | ActiveFilterThickness |
-------------------------------------------------------------------
|     1     |     3     |       50        |           0           |
 ------------------------------------------------------------------
|     1     |     2     |       400       |           0           |
-------------------------------------------------------------------
|     4     |    603    |       27        |           0           |
-------------------------------------------------------------------

列表B有数据:

| ObjectId1 | ObjectId2 | ActiveThickness | ActiveFilterThickness |
-------------------------------------------------------------------
|     1     |     3     |       0         |         13671         |
 ------------------------------------------------------------------
|     1     |     2     |       0         |          572          |
-------------------------------------------------------------------
|    29     |    11     |       0         |         4283          |
-------------------------------------------------------------------

我想将 A 和 B(如果可能的话使用 LINQ)合并到 SomeCalss 的列表 C 中,其中包含如下数据:

| ObjectId1 | ObjectId2 | ActiveThickness | ActiveFilterThickness |
-------------------------------------------------------------------
|     1     |     3     |       50        |         13671         |
 ------------------------------------------------------------------
|     1     |     2     |       400       |          572          |
-------------------------------------------------------------------
|    29     |    11     |       0         |         4283          |
-------------------------------------------------------------------
|     4     |    603    |       27        |           0           |
-------------------------------------------------------------------

我怎样才能做到这一点?


Use GroupBy对常见对象进行分组并Sum求和所需的属性

        var ab = A.Concat(B).GroupBy(x => new
                                              {
                                                      x.ObjectId1,
                                                      x.ObjectId2
                                              });


        var result = ab.Select(x => new SomeClass
                                        {
                                                ObjectId1 = x.Key.ObjectId1,
                                                ObjectId2 = x.Key.ObjectId2,
                                                ActiveFilterThickness = x.Sum(i => i.ActiveFilterThickness),
                                                ActiveThickeness = x.Sum(i => i.ActiveThickeness)
                                        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LINQ 合并 2 个列表并对多个属性求和 的相关文章

随机推荐

  • Rails 4 - Pundit - 如何编写范围

    我正在尝试学习如何将 Pundit 与 Rails 4 结合使用 过去 2 年我一直在尝试学习这一点 并且正在慢慢取得一点点进展 我也在尝试学习如何编写范围 我仍在尝试找出如何将建议翻译成简单的英语 以便我可以开始理解 我陷入了专家策略使用
  • 如何在Python中按字典的值对字典列表进行排序?

    如何按特定键的值对字典列表进行排序 鉴于 name Homer age 39 name Bart age 10 当排序时name 它应该变成 name Bart age 10 name Homer age 39 The sorted htt
  • Web API 和 Web 服务有什么区别?

    有什么区别吗web API and a 网络服务 或者它们是同一个吗 Web 服务通常提供WSDL https en wikipedia org wiki Web Services Description Language您可以从中自动创建
  • 我如何搜索过去 x 天内创建的 Github 问题?

    Also 在这里问 https stackoverflow com questions 38729663 how do i search github issues created in the last seven days但在 2016
  • 给定二进制 MxN 矩阵和切换列的能力,最大化行相同性?

    如果你有一个由 1 和 0 组成的二进制矩阵 并且能够切换列 将列中的所有 1 更改为 0 将所有 0 更改为 1 那么如何找到所有可能的 纯 行的最大数量列切换的组合 纯 表示该行全为 0 或全为 1 Ex 1 0 1 0 1 1 您可以
  • 使用 XML 字符串序列化 XML

    我必须生成以下 XML
  • Context.startForegroundService() 然后没有调用 Service.startForeground()

    我在用ServiceAndroid O 操作系统上的类 我计划使用Service在后台 The 安卓文档 https developer android com guide components services StartingAServ
  • Azure 网站上的 .NET CORE 3.1:500.37 ANCM 无法在启动时间限制内启动

    我有 NET Core 3 1 API 部署在 Azure Web 应用程序服务中 由于错误 我在 Azure 中运行应用程序时遇到问题500 37 ANCM在启动时间内启动失败 https learn microsoft com en u
  • 渲染(重绘)不可见的画布

    我的选项卡式应用程序在每个页面上都有一个单独的画布 上面有不同的用户控件 像这样 http svetiksch spb ru tmp stack01 png 现在我需要将所有页面 画布 保存到图像 代码是这样的 public static
  • 如何判断我是处于编辑状态还是创建状态?蛋糕PHP

    我有一个模型 需要在保存之前进行一些处理 或在某些情况下进行编辑 但通常在简单编辑时不需要 事实上 如果我对大多数编辑进行处理 结果字段将是错误的 现在 我正在模型的 beforeSave 回调中工作 如何判断我是来自编辑还是添加 弗兰克
  • 处理大型 DOM 元素时加速 jQuery empty() 或 ReplaceWith() 函数

    首先 我为没有提供代码片段表示歉意 我正在从事的项目是专有的 恐怕我无法展示exactly我正在做什么 不过 我会尽力进行描述 以下是我的应用程序中发生的情况的细分 用户单击按钮 服务器以数据表的形式检索图像列表 Each row in t
  • 如何让某人的个人资料图片显示给他们?

    我如何才能将某人的个人资料图片显示给我 我已经获得使用用户图片等的权限 我只是不知道如何使用他们的个人资料图片并将其显示给他们 任何帮助都是极好的 调用Graph API http graph facebook com id picture
  • 保留文本区域中的换行符

    我有一个带有文本区域的表单 我想在输出内容时保留用户输入的换行符 例如 如果我在 textarea 中写入 这里有一句话 这是另一个 这里还有一个 这是一个新段落 这是一个新句子 这是另一个 我想要相同的输出not 这里有一句话 这是另一个
  • 它说 TypeError: document.getElementById(...) 为 null [重复]

    这个问题在这里已经有答案了 虽然我向 getElementById 推送了一个参数 但我想知道这个 is null 错误来自哪里 TypeError document getElementById is null Break On This
  • gcc 编译器无法识别 -fno-plt 选项

    我正在尝试使用 Amazon Linux AMI 在 Amazon EC2 实例上编译 QuantLib Python SWIG 绑定 我已成功编译 QuantLib 本身 但是 当尝试编译 anaconda python swig 绑定时
  • 如何从java调用c++功能

    我有一个主要是 GUI 的 Java 程序 它显示从 C 命令行工具写入 xml 文件的数据 现在我想在java程序中添加一个按钮来刷新数据 这意味着我的程序必须调用 C 功能 通过系统调用从 java 调用程序的最佳方法是 c 程序将为
  • 使用 TRESTRequest 时客户端未指定证书

    使用 SSL URL 调用我们的内部服务器之一时 TRESTClient 和 TRESTRequest 给出错误 首先来自异常类 ENetHTTPCertificateException 然后来自 ERESTException 并显示消息
  • 可变高度的 CSS 浮动 Div [重复]

    这个问题在这里已经有答案了 我有无限数量的 100px 宽度的 div 可以放入 250px 宽度的父级中 无论高度如何 我都需要将 div 按行显示 如图所示 我已经尝试解决这个问题 但 div 高度似乎把它搞砸了 我非常感谢你的帮助 谢
  • 用元组定义函数

    如何定义一个接受所有元组 1 到 22 作为参数的函数 我有以下想法 def foo v Tuple foo 1 2 foo 1 2 3 EDIT 回答评论 我实际上正在尝试创建一个张量类 它是一组值和一组索引 索引可以是协变和 或逆变的
  • 使用 LINQ 合并 2 个列表并对多个属性求和

    我有一个包含以下属性的类 public class SomeClass public Int32 ObjectId1 get set public Int32 ObjectId2 get set public Int32 ActiveThi