C#Linq按对象属性分组

时间:2014-03-07 12:48:09

标签: c# linq

我有以下课程:

public class MyItem
{
    public string Email;
    public int Value1;     
    public datetime Value2;
    //etc
}

public class MyItems : List<MyItem> {}

我使用随机项列表填充MyItems对象。现在我需要将此列表分成较小的列表,其中每个列表仅包含具有相同&#39;电子邮件&#39;属性。

可以使用Linq实现吗?

2 个答案:

答案 0 :(得分:1)

如果您有List<MyItem>,则可以使用GroupBy

myItems.GroupBy(x => x.Email).Select(g => g.ToList());

这将返回IEnumerable<List<MyItem>>

或者您可以使用ToDictionary,然后可以Email

访问您的论坛
myItems.GroupBy(x => x.Email).ToDictionary(x => x.Key, x => x.ToList());

答案 1 :(得分:0)

试试这个

MyItems myItems = new MyItems();

//Populate here

myItems.GroupBy(x => x.Email).Select(group => group.ToList());

在这里,您可以获得可以使用的列表集合