小编典典

LINQ Group By可以投影成非匿名类型吗?

sql

我有以下LINQ示例:

var colorDistribution = 
    from product in ctx.Products
    group product by product.Color
    into productColors

    select
       new 
    {
       Color = productColors.Key,
       Count = productColors.Count()
    };

所有这些都有效并且很合理。

我想要实现的是将分组为强类型而不是匿名类型。

例如,我有一个ProductColour类,我想分组为一个 List<ProductColour>

这可能吗?

谢谢


阅读 205

收藏
2021-04-28

共1个答案

小编典典

编辑:好的,我会完全误读您的帖子。从外观上看,您不想 其他类型分组-您希望将组中的每个元素投影 不同的类型。这是我要做的:

var colorDistributionSql = 
    from product in ctx.Products
    group product by product.Color
    into productColors

    select
       new 
    {
       Color = productColors.Key,
       Count = productColors.Count()
    };

var colorDistributionList = colorDistributionSql
      .AsEnumerable()
      .Select(x => new ProductColour(x.Color, x.Count))
      .ToList();
2021-04-28