c# - 分组同类对象 C#

标签 c# linq collections

我有一个对象列表,这些对象被关闭或由它们的一个属性唯一标识,比如“ID”。我需要将具有不同 ID 且其余属性相同的所有对象分组。

示例:Obj 具有属性“ID”、“E1”、“E2”、“E3”。请注意,这些都是 Obj 的属性。

我知道所有对象列表的 ID 都不同,但如果不同对象的 E1、E2 和 E3 相同,我想分组。因此,我将拥有具有相同 E1、E2、E3 但 ID 不同的 Obj 数组。

在 C# 中处理这个问题的最简单方法是什么,有什么想法吗?

最佳答案

好吧,像这样的东西适用于 LINQ:

var groups = collections.GroupBy(x => new { x.E1, x.E2, x.E3 });

这将为您提供一系列可以迭代的分组。例如:

var groups = collections.GroupBy(x => new { x.E1, x.E2, x.E3 });
foreach (var group in groups)
{
    Console.WriteLine("Key: {0}", group.Key);
    foreach (var item in group)
    {
        Console.WriteLine("  ID: {0}", item.ID);
    }
}

关于c# - 分组同类对象 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395705/

相关文章:

c# - 在 LINQ 中加入多个 where 子句作为 OR 而不是 AND

android - 使用 Collections.sort() 对对象进行排序。出现错误

c# - 使用外键插入多个值

c# - 如何使用ASP.NET和C#将录音上传到Sound Cloud?

c# - 返回一组中的前 x 项

c# - 使用 Linq 按可为空的日期时间字段过滤

java - 为什么 map 不是真正的集合?

java - 从列表中删除另一个列表中不存在的所有对象

java - iText:从 HTML 创建短语

C#编码转换