我有以下 LINQ 示例:

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

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

所有这些都有效并且非常有意义。

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

例如我有一个 ProductColour 类,我想分组到一个 List<ProductColour>
这可能吗?

谢谢

最佳答案

编辑:好的,我完全误读了你的帖子。从它的外观来看,您不想按不同的类型分组 - 您想将组的每个元素投影到不同的类型中。这是我要做的:

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();

关于c# - LINQ Group By 把项目改成非匿名类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2927618/

10-10 22:18