Я пытаюсь подгруппировать группу, используя 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?