LINQ(Language Integrated Query,语言集成查询)是.NET框架中的一种技术,它允许开发者以声明性方式编写查询,并对数据进行操作。LINQ可以用于集合、数据库、XML文档等多种数据源。
LINQ主要有以下几种类型:
LINQ广泛应用于数据查询、数据转换、数据过滤等场景。例如,从数据库中查询数据并进行分组、排序、过滤等操作。
假设我们有一个包含原语数据的对象列表,并希望将其分组到新的分组对象列表中。以下是一个示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class GroupedPerson
{
public int AgeGroup { get; set; }
public List<Person> People { get; set; }
}
public class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 25 },
new Person { Name = "David", Age = 30 }
};
var groupedPeople = people
.GroupBy(p => p.Age / 10 * 10) // 按年龄分组,每组10年
.Select(g => new GroupedPerson
{
AgeGroup = g.Key,
People = g.ToList()
})
.ToList();
foreach (var group in groupedPeople)
{
Console.WriteLine($"Age Group: {group.AgeGroup}");
foreach (var person in group.People)
{
Console.WriteLine($" {person.Name}, {person.Age}");
}
}
}
}
Person
类和GroupedPerson
类。Person
对象的列表。GroupBy
方法按年龄分组,每组10年。Select
方法将分组结果转换为GroupedPerson
对象列表。通过以上示例和解释,你应该能够理解如何使用LINQ将包含原语数据的对象列表分组到新的分组对象列表中。
领取专属 10元无门槛券
手把手带您无忧上云