繁体   English   中英

C#Linq按对象属性分组

[英]C# Linq to group by object properties

我有以下课程:

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

public class MyItems : List<MyItem> {}

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

使用Linq可以实现吗?

如果您有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());

尝试这个

MyItems myItems = new MyItems();

//Populate here

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM