0

假设我有以下项目:

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

任何帮助将不胜感激!

4

2 回答 2

4

从头开始,未经测试:

from c in categoryList
group by c.Category into g
let fewItems = g.Take(3).ToList()
return new { Category = g.Key, Items = fewItems }
于 2011-03-24T08:31:01.553 回答
0

假设您的列表集合被命名为 categoryList..

实现您想要的 linq 查询是:

categoryList.GroupBy(c=>c.Category).Take(3)
于 2011-03-24T08:01:51.033 回答