c# - LINQ - GroupBy 一个键,然后将每个分组的项目放入单独的 'buckets'

标签 c# .net linq linq-group

我有一个这样的项目列表:

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

1 测试 1 1

2 测试 2 1

3 测试 3 1

4 list 2

5 List2 2

6 测试 3

7 测试2 3

8 测试3 3

有没有办法让我按 ListId 分组并将它们放入每个单独的桶中,​​即 ListId1 桶将包含所有 ListId = = 1。该列表是从 SQL 动态返回的,所以我事先不知道会有多少 ListId

最佳答案

您可以使用 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);
}

关于c# - LINQ - GroupBy 一个键,然后将每个分组的项目放入单独的 'buckets',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618847/

相关文章:

c# - 什么是 "Nested Quantifier",为什么它会导致我的正则表达式失败?

c# - Linq:前瞻性条件

c# - 我怎样才能进行内联排序?

c# - 在 Select() 子句中不使用匿名类型时,构建 SqlExpression 会抛出 InvalidOperationException

.NET 缓存 : maximum number of elements

c# - 如何通过 WMI 获取我系统上的所有智能卡读卡器?

c# - 为每个带有 Rx 的事件生成带有延迟的第二个后续事件

c# - 绑定(bind) DataGridComboBoxColumn SelectedIndex

c# - Dapper 错误 : Could not load type 'Dapper.SqlMapper'

c# - 如何在 C# 中使用 Selenium WebDriver 获取当前窗口的 URL?