通过分组拆分Linq列表

Luu*_*nen 4 c# linq

出于报告目的,我想将采购订单列表分成多个列表.每个购买地址一个列表.我知道可以按购买地址对列表进行分组,但我的问题是如何将此购买地址的列表拆分为多个列表,并使用这些多个列表创建单独的报告文件.

码:

(from o in orders
group o by new {field1, field2, field3, field4} into og
orderby og.Key.field1
select new ViewClass
{
    purchaseAddress = og.Key.field1,
    product = og.key.field2,
    count = og.count
}).ToList()
Run Code Online (Sandbox Code Playgroud)

问题:如何将上面的列表拆分为每个purchaseAddress的多个列表?

Eni*_*ity 10

我认为有一个内置功能可以满足您的需求.如果我假设您的代码被分配给一个名为的变量,query那么您可以这样写:

ILookup<string, ViewClass> queryLists = query.ToLookup(x => x.purchaseAddress);
Run Code Online (Sandbox Code Playgroud)

这实际上创建了一个列表列表,您可以像字典一样访问,但每个值都是零个或多个值的列表.就像是:

IEnumerable<ViewClass> someList = queryLists["Some Address"];
Run Code Online (Sandbox Code Playgroud)