我有以下课程:
public class MyItem
{
public string Email;
public int Value1;
public datetime Value2;
//etc
}
public class MyItems : List<MyItem> {}
我使用随机项列表填充MyItems对象。现在我需要将此列表分成较小的列表,其中每个列表仅包含具有相同&#39;电子邮件&#39;属性。
可以使用Linq实现吗?
答案 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());
在这里,您可以获得可以使用的列表集合