同组的对象C#

rem*_*emo 3 c# linq collections

我有一个对象列表,这些对象被其中一个属性称为"ID"的关键字或唯一标识.我需要对不同ID的所有对象进行分组,这些对象将具有相同的其余属性.

示例:Obj具有属性"ID","E1","E2","E3".注意这些都是Obj的所有属性.

我知道所有的Obj列表的ID都不同,但是如果不同的Obj的E1,E2和E3相同,我想分组.所以我会有一系列具有相同E1,E2,E3但不同ID的Obj.

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

Jon*_*eet 9

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

var groups = collections.GroupBy(x => new { x.E1, x.E2, x.E3 });
Run Code Online (Sandbox Code Playgroud)

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

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);
    }
}
Run Code Online (Sandbox Code Playgroud)