📜  linq group by (1)

📅  最后修改于: 2023-12-03 15:32:39.322000             🧑  作者: Mango

LINQ Group By

LINQ(Group By)是一种在.NET中的强大查询功能。该功能允许开发人员根据关键字对数据进行分组并获得分组后的结果。在这里,我们将学习如何使用C#的LINQ Group By功能。

简介

在使用LINQ Group By之前,我们来了解一下相关的定义和概念。

数据集合

数据集合是一组有序的元素。在c#中,我们可以使用各种集合类来表示数据集合,例如List,Array,Dictionary等。

分组

分组是根据相似的特征将数据集合中的数据分为不同的组的过程。例如,将学生根据年龄分为不同的组。

关键字(key)

关键字是用来指定如何对数据进行分组的特定属性。例如,按照学生的年龄分组,年龄就是关键字。

分组后的结果

分组后的结果是每个组的个数和每个组的所有元素的列表。在LINQ Group By中,我们使用group关键字来按关键字分组。

用法

下面的代码演示如何使用C#中的LINQ Group By功能,以对一个数据集进行分组。

var students = new List<Student> { 
    new Student { Name = "Peter", Age = 18, Gender = "Male" }, 
    new Student { Name = "Mary", Age = 20, Gender = "Female" }, 
    new Student { Name = "John", Age = 18, Gender = "Male" }, 
    new Student { Name = "Tom", Age = 22, Gender = "Male" }, 
    new Student { Name = "Jenny", Age = 20, Gender = "Female" }, 
};

var groups = students.GroupBy(s => s.Age); 

foreach (var group in groups) 
{ 
    Console.WriteLine($"Age : {group.Key}"); 
    Console.WriteLine($"Count : {group.Count()}"); 
    foreach (var student in group) 
    { 
        Console.WriteLine($"Name : {student.Name}"); 
    } 
    Console.WriteLine(); 
}

在上面的代码中,我们创建了一个学生列表,然后使用GroupBy方法将列表按年龄分组。将结果分配给一个变量。代码循环遍历groups变量,并获取每个组的关键字以及组中的学生数量和姓名。

以下是代码的输出:

Age : 18 
Count : 2 
Name : Peter 
Name : John 

Age : 20 
Count : 2 
Name : Mary 
Name : Jenny 

Age : 22 
Count : 1 
Name : Tom 
总结

在本文中,我们了解了C#中的LINQ Group By功能。使用此功能,我们可以对数据集合进行分组并获取分组后的结果。在实际编码中,我们可以使用GroupBy方法来编写复杂的查询以获取所需的数据。