本文介绍了LINQ - GROUPBY一个键,然后将每个项目分组到单独的“水桶”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的项目,如这样的列表:

I have a list of items as such:

public class Item
{
    public int ItemId { get; set; }
    public string ItemName { get; set; }
    public int ListId { get; set; }
}

1测试1 1

2的Test2 1

3 Test3的1

4表2

5列表2 2

6测试3

7 Testing2 3

8 Testing3 3

有没有办法对我来说,小组由 ListId ,并把它们放到每个单独的水桶,即 ListId1 桶将所有项目 ListId == 1 。这份名单是动态的SQL返回的,所以我不知道前手多少ListId会有的。谢谢你。

Is there a way for me to group by the ListId and put them into each separate buckets, i.e, ListId1 bucket will have all items with ListId == 1. The list is dynamically returned from SQL, so I don't know before hand how many ListId there will be. Thanks.

推荐答案

您可以使用 GROUPBY

var groups = items.GroupBy(item => item.ListId);

foreach(var group in groups)
{
     Console.WriteLine("List with ID == {0}", group.Key);
     foreach(var item in group)
        Console.WriteLine("    Item: {0}", item.ItemName);
}

这篇关于LINQ - GROUPBY一个键,然后将每个项目分组到单独的“水桶”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 12:25