C# 将List<T>分组
/// <summary>
/// 人
/// </summary>
public class Person
{
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 分值
/// </summary>
public int Score { get; set; }
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Score=100 },
new Person { Name = "Bob", Age = 25, Score=90 },
new Person { Name = "Alice", Age = 25, Score=80 },
new Person { Name = "Charlie", Age = 30, Score=70 }
};
// 使用ToLookup按Name和Age分组
var lookupByMultipleFields = people.ToLookup(p => new { p.Name, p.Age });
foreach (var group in lookupByMultipleFields)
{
Console.WriteLine($"Group: Name={group.Key.Name}, Age={group.Key.Age}");
foreach (var person in group)
{
Console.WriteLine($" {person.Name}, {person.Age}, {person.Score}");
}
}
浙公网安备 33010602011771号