我正在尝试使用linq分组。这证明比我想象的更困难。到目前为止,我采取了一种快速而肮脏的方法,但效果并不像我想的那样高效。这两个LINQ语句可以简化为一个?:如何在linq中对一个组进行分组?
var basketBalls = from Ball ball in Balls
where ball.IsBasketBall())
group ball by new { Color = ball.Color, IsBasketBall= ball.IsBasketBall(), Size = ball.Size } into Group
where Group.Count() > 0
select Group;
var nonBasketBalls = from Ball ball in Balls
where !ball.IsBasketBall())
group ball by new { Color = ball.Color, IsBasketBall= ball.IsBasketBall(), Size = ball.Size, Material = ball.Material } into Group
where Group.Count() > 0
select Group;
下面是两种说法都试图用简单的英语做。查找所有篮球球,并按颜色和大小对它们进行分组。如果他们不是篮球,那么按颜色,大小和材料对他们进行分组。是否有可能在简洁的linq声明中做到这一点?
组总是有至少1个元素,所以在Group.Count()> 0的地方只是浪费。 – 2010-06-23 14:12:25