从事了将近两年的.net core开发,给我印象最深的,无疑就是C#中linq表达式了。
linq表达式,全称语言集成查询,语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。 借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。
以上是微软官方给的定义,平日里我对linq使用的比较多的一般就是针对集合和数据库的增删改查,废话不多说,直接上代码
where用法
官方定义:where
子句用在查询表达式中,用于指定将在查询表达式中返回数据源中的哪些元素。 它将一个布尔条件(谓词)应用于每个源元素(由范围变量引用),并返回满足指定条件的元素。 一个查询表达式可以包含多个 where
子句,一个子句可以包含多个谓词子表达式。
简单的说,where就是查询用的,根据特定的表达式获取自己想要的结果
List<string> testList = new List<string>() { "apple", "watermelon", "pear" };
var result = testList.Where(c => c.Equals("apple")).FirstOrDefault();
// Output
// apple
select用法
官方定义:在查询表达式中,select
子句指定在执行查询时产生的值的类型。 根据计算所有以前的子句以及根据 select
子句本身的所有表达式得出结果。
官方的定义不容易理解,例如有一个student列表,我想把student列表的所有name转换成一个List<string>,这个时候 select就可以派上用场了
List<Student> students = new List<Student>()
{
new Student()
{
Name = "xiaoming",
Age = 10
},
new Student()
{
Name = "xiaohong",
Age = 9
},
new Student()
{
Name = "xiaodong",
Age = 16
}
};
List<string> nameList = students.Select(c => c.Name).ToList();
FirstOrDefault用法
返回序列中的第一个元素;如果未找到该元素,则返回默认值。
List<int> testList = new List<int>() { 1, 2, 3 };
int result = testList.FirstOrDefault();