LINQ基本语法
# LINQ基本语法
LINQ(Language Integrated Query)语言集成查询是一组用于C#语言的扩展。它允许编写C#代码以操作内存数据的方式,查询数据
本例主要讲解LINQ操作List数据集合;详细可自行百度学习 [LINQ操作List](https://www.baidu.com/s?wd=LINQ%E6%93%8D%E4%BD%9CList)
本例中用到的条件都是Lambda表达式;可结合[Lambda表达式详解](doc:1TuhLtBd)和后面的调取数据结合学习
## Where条件筛选
```cs
//将provice=吉林的筛选出来
var list = List.Where(x => x.provice == "吉林").ToList(); // x => x.provice == "吉林" 就是Lambda表达式
//将包含1,5条件的数据筛选出来,相当于sql里的in用法:select * from 表 where user_type in (1,5)
var list= List.Where(a => "1,5".Contains(a.user_type)).ToList();
//此处等同于上面
var list = List.Where(a => a.user_type == "1" || a.user_type == "5").ToList();
```
## Select查询
```cs
//相当于sql中select语句;获取指定的列
var list = List.Select(a => a.id).ToArray();
```
## Where与Select的同时使用
```cs
var list = List.Where(a => !string.IsNullOrEmpty(a.user_type)).Select(a => a.id).ToArray();
```
## OrderBy和OrderByDescending排序
```cs
//正序
var list = List.OrderBy(p => p.rpId).Where(p => p.rpId > 10).ToList();
//倒序
var list = List.OrderByDescending(p => p.rpId).Where(p => p.rpId > 10).ToList();
//2个排序
var list = List.OrderBy(a => a.student_id).ThenBy(a => a.name);
//多个排序
var list = List.OrderBy(a => a.student_id).ThenBy(a => a.name).ThenBy(a => a.sex);
```
## Skip,Take取特定条数数据
```cs
//取前1-10条
var list = List.Skip(0).Take(10).ToList();
//也可以这么写取前1-10条
var list = List.Take(10).ToList();
//取第11-20条
var list = List.Skip(10).Take(10).ToList();
```
## 包含,类似like '%%'
```cs
//获取名字中含有张的列表
var list = List.Where(p => p.Name.Contains("张")).ToList();
```
在后续的使用过程中可根据条件自行组合所有的查询使用;高扩展可自行发挥使用