如何以分组因子作为键从分组操作返回字典?

时间:2012-10-29 21:53:26

标签: c# linq

下面的代码创建了一个字符串列表。分组因子是StoreID(Item1)。我想要的是一个字典,其中分组因子(即StoreID)作为键,字符串作为值。输入文件只是一个包含3列的文本文件:StoreID,Quantity和其他东西(我记不起来了),但这些值只是为每个行连接在一起,以便商店使用逗号和条形分隔字符串。

var query = skuStoreStockLevel.GroupBy(x => x.Item1)
                .Select(g => g.Aggregate(new StringBuilder(),
                                         (sb, x) => sb.AppendFormat("{0}{1},{2},{3}", "|", x.Item1, x.Item2, x.Item3),
                                         (sb) => sb.ToString()));

1 个答案:

答案 0 :(得分:2)

您可以使用Enumerable.ToDictionary执行此操作:

var query = skuStoreStockLevel.GroupBy(x => x.Item1)
            .ToDictionary(
                 g => g.Key,
                 g => g.Aggregate(new StringBuilder(),
                                     (sb, x) => sb.AppendFormat("|{0},{1},{2}", x.Item1, x.Item2, x.Item3),
                                     (sb) => sb.ToString()));