[英]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.