接下来我将为你讲解C#在LINQ中使用GroupBy的完整攻略。
1. 概述
在LINQ中,我们可以使用GroupBy方法对数据进行分组,GroupBy方法返回一个IEnumerable
2. 示例1:按字符串分组
下面是一个简单的示例,我们通过GroupBy方法对一组字符串进行分组:
string[] arr = { "apple", "banana", "cherry", "durian", "apple" };
var groupByResult = arr.GroupBy(s => s);
foreach (var g in groupByResult)
{
Console.WriteLine($"Key: {g.Key} Count:{g.Count()}");
foreach (var s in g)
{
Console.WriteLine($" {s}");
}
}
代码的输出结果如下:
Key: apple Count:2
apple
apple
Key: banana Count:1
banana
Key: cherry Count:1
cherry
Key: durian Count:1
durian
3. 示例2:按对象属性分组
我们也可以使用GroupBy方法对一个类的属性进行分组,例如我们定义一个Person类,有Name、Age、Gender三个属性,我们可以按照Gender进行分组:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
Person[] people =
{
new Person {Name = "Jack", Age = 20, Gender = "Male"},
new Person {Name = "Bob", Age = 25, Gender = "Male"},
new Person {Name = "Alice", Age = 18, Gender = "Female"},
new Person {Name = "Denny", Age = 30, Gender = "Male"},
new Person {Name = "Cathy", Age = 22, Gender = "Female"}
};
var groupByResult = people.GroupBy(p => p.Gender);
foreach (var g in groupByResult)
{
Console.WriteLine($"Gender: {g.Key} Count:{g.Count()}");
foreach (var p in g)
{
Console.WriteLine($" Name: {p.Name}, Age: {p.Age}");
}
}
代码的输出结果如下:
Gender: Male Count:3
Name: Jack, Age: 20
Name: Bob, Age: 25
Name: Denny, Age: 30
Gender: Female Count:2
Name: Alice, Age: 18
Name: Cathy, Age: 22
总结
通过以上两个示例,我们可以看到在LINQ中使用GroupBy方法对数据进行分组的便捷性。在实际应用中,我们可以根据自己的需求使用GroupBy方法进行数据分组,并在分组的基础上进行进一步的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#在LINQ中使用GroupBy - Python技术站