C# Linq GroupBy,获取每个组中的列的列表

sqlserver

1个回答

写回答

小韩爱小陈

2025-07-08 18:50

+ 关注

AI
AI

使用C# Linq的GroupBy方法可以对集合进行分组操作,而获取每个组中的列的列表可以通过遍历分组结果来实现。本文将介绍如何使用C# Linq的GroupBy方法以及如何获取每个组中的列的列表,并提供相应的案例代码。

首先,让我们来看一下C# Linq的GroupBy方法的基本用法。GroupBy方法接受一个lambda表达式作为参数,用于确定分组的依据。lambda表达式中可以指定一个或多个属性来进行分组。例如,假设我们有一个Person类,其中包含Name和Age两个属性,我们可以按照Age属性对Person对象进行分组,代码如下:

csharp

List<Person> people = new List<Person>

{

new Person { Name = "Alice", Age = 20 },

new Person { Name = "Bob", Age = 30 },

new Person { Name = "Charlie", Age = 20 },

new Person { Name = "Dave", Age = 30 },

};

var groups = people.GroupBy(p => p.Age);

上述代码中,我们定义了一个Person类的集合people,并初始化了一些Person对象。然后,我们使用GroupBy方法按照Age属性对people集合进行分组。分组的结果将存储在一个类型为IEnumerable>的变量groups中。在这个结果中,每个分组都是一个IGrouping对象,它包含了分组的键(Age属性的值)以及属于该分组的所有Person对象。

接下来,我们需要遍历分组的结果,以获取每个组中的列的列表。我们可以使用foreach循环来遍历groups变量,并访问每个分组的键和对应的Person对象。代码如下:

csharp

foreach (var group in groups)

{

Console.WriteLine("Age: " + group.Key);

foreach (var person in group)

{

Console.WriteLine("Name: " + person.Name);

}

Console.WriteLine();

}

上述代码中,我们首先输出了每个分组的键(Age属性的值),然后遍历了每个分组中的所有Person对象,并输出了它们的Name属性。通过这种方式,我们可以获取每个组中的列的列表。

案例代码:

下面是一个完整的示例代码,演示了如何使用C# Linq的GroupBy方法以及如何获取每个组中的列的列表:

csharp

using System;

using System.Collections.Generic;

using System.Linq;

class Person

{

public string Name { get; set; }

public int Age { get; set; }

}

class Program

{

static void MAIn()

{

List<Person> people = new List<Person>

{

new Person { Name = "Alice", Age = 20 },

new Person { Name = "Bob", Age = 30 },

new Person { Name = "Charlie", Age = 20 },

new Person { Name = "Dave", Age = 30 },

};

var groups = people.GroupBy(p => p.Age);

foreach (var group in groups)

{

Console.WriteLine("<strong>Age: " + group.Key + "</strong>");

foreach (var person in group)

{

Console.WriteLine("Name: " + person.Name);

}

Console.WriteLine();

}

}

}

注意:

在上述代码中,我们使用了Console.WriteLine方法来输出结果。如果你是在控制台应用程序中运行代码,那么结果将显示在控制台窗口中。如果你是在其他类型的应用程序中运行代码,你可能需要将结果显示在适合的界面组件中。

:

本文介绍了如何使用C# Linq的GroupBy方法以及如何获取每个组中的列的列表。通过使用GroupBy方法,我们可以对集合进行分组操作,并获取分组的结果。然后,通过遍历分组的结果,我们可以获取每个组中的列的列表。希望本文对你理解C# Linq的GroupBy方法以及获取分组结果有所帮助。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号