C#中的LINQ语句
public static void Main() { int[] nums = { 3, 12, 1, 20, 2, 100 }; var lowNums = from n in nums where n < 10 select n; foreach (int num in lowNums) Console.WriteLine(num); }
注意,LINQ语句在定义后并没有执行,而是等到第一次使用它时。
- LINQ代表语言集成查询(Language Integrated Query)
- LINQ是.NET框架的扩展,它允许我们以SQL查询数据库的方式来查询集合
- 使用LINQ,你可以从数据库、集合以及XML文档中获取数据
LINQ的两种语法形式
查询语法
var longwords = from w in in words where w.length>10
方法语句
var longwords = words.Where(w => w.length>10)
LIN的数据类型
- 对于Linq to Object,返回的数据类型是IEnumerable<T>,T取决于select子句的结果
- 一般我们使用推断类型var表示,编译器会自己判断类型
多个where语句
这两种方法都行
二次过滤
- 可以在上一次查询的结果进行查询
- 原理:in后面跟的数据类型是IEnumerable接口
Select子句
- 指定返回类型
- 可以直接返回整个元素,也可以返回一部分属性
什么是匿名数据类型
一定义出来就赋值了,没必要有名字。
var student = new { name = "Rogn", age = 20, major = "computer" }; Console.WriteLine($"{ student.name}, Age:{student.age}, major:{student.major}");
OrderBy子句
orderby使用Lambda表达式:
多字段排序
结果数据转换
- 将IEnumerable类型的数据转换成List、Array、Dictionary
结果数据计算
- 对IEnumerable类型的数据进行计数、求和、求平均、取第一个数
个性签名:时间会解决一切