GroupBy тогда принять в LINQ для сущностей?

Допустим, у меня есть следующие предметы:

ID      Category        Name

1       Fruit           Banana
2       Car             Mescedes
3       Fruit           Blackberry
4       Fruit           Mango
5       Car             Lexus
6       Fruit           Melon
7       Car             BMW
8       Car             Toyota

Я хочу сгруппировать их в Category и брать только первые 3 предмета каждого Category, Является ли это возможным?

Я ожидал выход:

ID        Category        Name

1        Fruit           Banana
3        Fruit           Blackberry
4        Fruit           Mango
2        Car             Mescedes
5        Car             Lexus
7        Car             BMW

Любая помощь будет оценена!

2 ответа

Решение

Из головы и не проверено:

from c in categoryList
group by c.Category into g
let fewItems = g.Take(3).ToList()
return new { Category = g.Key, Items = fewItems }

Допустим, ваша коллекция списков названа как categoryList.

Linq запрашивает, чтобы достичь того, что вы хотите:

categoryList.GroupBy(c=>c.Category).Take(3)
Другие вопросы по тегам