📅  最后修改于: 2023-12-03 14:43:54.100000             🧑  作者: Mango
LINQ(Language Integrated Query,语言集成查询)是.NET框架中的一个组件,它可以将查询语句嵌入到C#或VB.NET等编程语言中,使得查询数据变得非常容易和直观。LINQ主要有3种查询方式,即LINQ to Objects,LINQ to SQL和LINQ to XML,其中最为常用的是LINQ to Objects。
使用LINQ的优点如下:
以下是一些基本的LINQ语法:
//从数组中查询所有偶数
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8 };
var evenNums = from num in nums
where (num % 2) == 0
select num;
foreach (var num in evenNums)
{
Console.WriteLine(num);
}
LINQ查询通常由三个部分组成,即数据源、查询表达式和查询结果。在上面的例子中,nums
数组是数据源,查询表达式由from
、where
、select
组成,查询结果由evenNums
表示。
在LINQ中,可以使用各种数据类型进行查询,包括整数、字符串、对象等。
//从字符串数组中查询所有以'a'开头的字符串
string[] fruits = { "apple", "banana", "apricot", "orange" };
var aFruits = from fruit in fruits
where fruit.StartsWith("a")
select fruit;
foreach (var fruit in aFruits)
{
Console.WriteLine(fruit);
}
在LINQ中,还可以对查询结果进行分组操作,并使用group by
关键字进行分组。
//从对象列表中查询每个人的工资总和,并按照所在城市进行分组
class Person
{
public string Name { get; set; }
public string City { get; set; }
public int Salary { get; set; }
}
List<Person> persons = new List<Person>()
{
new Person(){Name="Tom", City="Beijing", Salary=3000},
new Person(){Name="Jack", City="Shanghai", Salary=4000},
new Person(){Name="Mike", City="Beijing", Salary=2000},
new Person(){Name="Susan", City="Shanghai", Salary=3500},
};
var sumByCity = from person in persons
group person by person.City into cityGroup
select new
{
City = cityGroup.Key,
SumSalary = cityGroup.Sum(p => p.Salary)
};
foreach (var group in sumByCity)
{
Console.WriteLine($"City:{group.City} SumSalary:{group.SumSalary}");
}
LINQ是.NET框架中非常重要的一个组件,它可以让我们轻松地进行数据查询和处理。LINQ有着非常高的灵活性和可读性,利用LINQ可以将代码编写得更加简洁易懂。熟练使用LINQ可以极大地提高程序员的编程效率。