给定多个相同对象的列表,请根据字段值对它们进行分组和组合

bhl

抱歉,标题不一致。我不知道如何简单地解释我的问题,这就是为什么我真的不知道如何查找它。我会用一个例子来解释...

假设我有一堂课:

public class cas
{
    public string name { get; set; }
    public int num { get; set; }
}

在该课程中,我制作了几个对象并将它们粘贴到列表中。为了举例,我将做4:

var list = new List<cas>
{
    new cas { name = "firstname", num = 1 },
    new cas { name = "firstname", num = 2 },
    new cas { name = "lastname", num = 3 },
    new cas { name = "lastname", num = 4 }
};

有没有办法获取此列表并合并具有相同名称字段的任何对象?

因此,新列表将是具有以下内容的1个对象:

 name = "firstname", num = 3,
 name = "lastname", num = 7

有一种明显的“漫长的”方法可以做到这一点,但它又笨重又昂贵(要遍历列表多次才能找到相似的对象)。我想知道我是否缺少任何干净的方法。我特意做了一个简单的例子,以便答案将是概念的证明,而不是为我编写代码。我的实际问题比这还复杂,但是我无法弄清楚它的这一方面。

吉恩·麦基(Zein Makki)

使用Linq,您有一个GroupBy方法和一个Select方法:

list = list.GroupBy(x=> x.name)
           .Select(x=> new cas() { name = x.Key, num  = x.Sum(y=> y.num) }).ToList();

或使用优雅的查询语法:

list = (from item in list
        group item by item.name into grouping
        select new cas()
        {
            name = grouping.Key,
            num = grouping.Sum(x => x.num)
        }).ToList();

请注意,要使用这些方法,必须using System.Linq在源文件的顶部添加

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据对象字段的分组对列表进行排序,根据组中的最大值进行排序

来自分类Dev

根据相同的值对两个数组进行对象分组

来自分类Dev

如何组合包含相同对象键的多个子数组?

来自分类Dev

Typescript - 根据多个值对数组中的对象进行分组和过滤

来自分类Dev

R根据多个列的组合进行分组

来自分类Dev

对数组中的不同对象值进行分组?

来自分类Dev

按多个属性对对象列表进行排序和分组

来自分类Dev

根据两个变量进行分组,包括它们各自的组合(例如,A-B与B-A相同)

来自分类Dev

列表中的相同对象

来自分类Dev

根据属性值检索列表中的不同对象

来自分类Dev

根据某些字段对对象进行分组

来自分类Dev

根据内部列表中的字段对Java中的两个嵌套列表进行排序和分组

来自分类Dev

在Python中对具有相同值的列表和子列表进行排序和分组

来自分类Dev

按给定字段对字典值进行排序,该值是对象列表

来自分类Dev

Swift 5 根据对象值对对象数组进行分组和拆分

来自分类Dev

转换对象的值的列表进行分组

来自分类Dev

如何根据Groovy中的字段值使用自定义键将对象列表组合到列表列表中?

来自分类Dev

Oracle Object包含相同对象的列表

来自分类Dev

如何对具有相同子对象列表的对象进行分组?

来自分类Dev

根据数组对象列表对Javascript对象进行分组

来自分类Dev

比较两个不同对象但具有相同字段的列表

来自分类Dev

比较不同对象但具有相同字段的2个列表

来自分类Dev

根据特定字段对对象数组进行分组

来自分类Dev

如何根据对象的值对对象数组进行分组排序?

来自分类Dev

根据对象的属性值对对象进行分组

来自分类Dev

如何根据阵列的某些列对它们进行分组和求和(例如,按国家对城市进行分组)

来自分类Dev

根据一列的相同值进行分组和排序,然后对这些组中的另一列进行排序

来自分类Dev

根据不同的字段和值进行排序

来自分类Dev

根据它们出现的频率对多个值进行排序

Related 相关文章

  1. 1

    根据对象字段的分组对列表进行排序,根据组中的最大值进行排序

  2. 2

    根据相同的值对两个数组进行对象分组

  3. 3

    如何组合包含相同对象键的多个子数组?

  4. 4

    Typescript - 根据多个值对数组中的对象进行分组和过滤

  5. 5

    R根据多个列的组合进行分组

  6. 6

    对数组中的不同对象值进行分组?

  7. 7

    按多个属性对对象列表进行排序和分组

  8. 8

    根据两个变量进行分组,包括它们各自的组合(例如,A-B与B-A相同)

  9. 9

    列表中的相同对象

  10. 10

    根据属性值检索列表中的不同对象

  11. 11

    根据某些字段对对象进行分组

  12. 12

    根据内部列表中的字段对Java中的两个嵌套列表进行排序和分组

  13. 13

    在Python中对具有相同值的列表和子列表进行排序和分组

  14. 14

    按给定字段对字典值进行排序,该值是对象列表

  15. 15

    Swift 5 根据对象值对对象数组进行分组和拆分

  16. 16

    转换对象的值的列表进行分组

  17. 17

    如何根据Groovy中的字段值使用自定义键将对象列表组合到列表列表中?

  18. 18

    Oracle Object包含相同对象的列表

  19. 19

    如何对具有相同子对象列表的对象进行分组?

  20. 20

    根据数组对象列表对Javascript对象进行分组

  21. 21

    比较两个不同对象但具有相同字段的列表

  22. 22

    比较不同对象但具有相同字段的2个列表

  23. 23

    根据特定字段对对象数组进行分组

  24. 24

    如何根据对象的值对对象数组进行分组排序?

  25. 25

    根据对象的属性值对对象进行分组

  26. 26

    如何根据阵列的某些列对它们进行分组和求和(例如,按国家对城市进行分组)

  27. 27

    根据一列的相同值进行分组和排序,然后对这些组中的另一列进行排序

  28. 28

    根据不同的字段和值进行排序

  29. 29

    根据它们出现的频率对多个值进行排序

热门标签

归档