LINQ巩固
LINQ巩固
- LINQ过滤运算符
Where 基于谓词函数过滤值
测试例子如下:
public class TestModel
{
public string Name { get; set; }
public string Age { get; set; }
}
List<TestModel> lst = new List<TestModel>()
{
new TestModel(){Name = "张三" },
new TestModel(){Name = "李四" },
};
var querys1 = from item in lst where item.Name == "李四" select item;
var querys2 = lst.Where(item => item.Name == "李四");
- LINQ Join操作
!运算符 | 描述 | 查询语法 |
---|---|---|
Join | 运算符连接两个序列配键的基础 | join...in...on...equals... |
GroupJoin | 连接连个序列和组匹配元素 | join...in...on...equals...into |
测试例子:
··· C#
List lst = new List()
{
new TestModel(){Name = "张三", Age = "23" },
new TestModel(){Name = "李四", Age = "43" },
};
List<CameraModel> lstCamera = new List<CameraModel>()
{
new CameraModel(){Name = "张三", Price = "sfsf" },
new CameraModel(){Name = "张三", Price = "测试工程时" },
new CameraModel(){Name = "李四", Price = "买菜的" }
};
var query = from it in lst
join item in lstCamera on it.Name equals item.Name
select new
{
it.Name,
it.Age,
item.Price
};
···
- LINQ投影操作
运算符 | 描述 |
---|---|
Select | 操作转换函数的基础项目值 |
SelectMany | 操作项目的值是根据上的转换函数,以及拼合成一个单一的序列的序列 |
var querys = from ite in lst from item in lstCamera select ite;
- LINQ排序运算符
操作符 | 描述 |
---|---|
OrderBy | 按升序操作排序值 |
OrderByDescending | 按降序排序操作值 |
ThenBy | 执行二次元排序按升序 |
ThenByDescending | 执行二次排序以降序 |
Reverse | 进行反转的元素顺序 |
- LINQ分组操作
操作 | 描述 |
---|---|
GroupBy | 组织项目的顺序组,并将其返回IEnumerable类型的集合 |
ToLookup | 执行在其中的密钥对的序列被返回分组运算 |
- LINQ转换操作
操作符 | 描述 |
---|---|
AsEnumerable | 返回输入类型为IEnumerable T |
AsQueryable | IEnumerable被转换为IQueryable |
Case | 执行一个集合的元素的转换到一个指定类型 |
OfType | 在它们的基础上过滤值,这取决于它们的能力,以被转换为特定类型 |
ToArray | 转换为数组 |
ToDictionary | 转为字典 |
ToList | 转为列表 |
ToLookup | 强制执行查询,并把元素融入一个Lookup TKey,TElement键选择器函数 |
- LINE级联
操作符 | 描述 |
---|---|
Concat | 两个序列被连接为一个单一的一个序列 |
- LINQ聚合
操作 | 描述 |
---|---|
Aggergate | 对集合的值进行操作执行自定义聚合操作 |
Average | 计算集合的平均值 |
Count | 计算数量 |
LongCount() | 计算一个巨大集合中的数量 |
Max | 找出一个集合中的最大值 |
Min | 找出一个最小值 |
Sum | 计算总和 |
- LINQ量词操作
操作 | 描述 |
---|---|
All | 返回一个值'true',如果序列中的所有元素满足谓词条件 |
Any | 确定通过搜索一个序列是否相同的任何元素满足规定条件 |
Contains | 如果找到某个特定元素有一个序列返回一个'true'的值,如果序列不包含特定的元素,'false‘值返回 |
- LINQ分区操作符
操作 | 描述 |
---|---|
Skip | 跳过一些指定的序列中一些元素,并返回其余的 |
SkipWhile | 相同,唯一的例外调到多个元素,跳过的是由一个布尔条件指定 |
Take | 采取元素指定数量的序列,并跳过其余的 |
TakeWhile | 相同,布尔条件指定 |
- LINQ元素操作符
操作 | 描述 |
---|---|
ElementAt | 返回一个特定的索引中的一个元素存在于一个集合 |
ElementAtOrDefault | 相同与ElementAt,未找到返回默认值 |
First | 检索集合的满足的第一个元素 |
FirstOrDefault | 相同,未检索到返回默认值 |
Last | 用法同上 |
LastOrDefault | 同上 |
Single | 返回集合唯一元素或唯一元素满足的一定条件 |
SingleOrDefault | 不解释 |
LINQ巩固的更多相关文章
- Linq表达式、Lambda表达式你更喜欢哪个?
什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- [C#] 走进 LINQ 的世界
走进 LINQ 的世界 序 在此之前曾发表过三篇关于 LINQ 的随笔: 进阶:<LINQ 标准查询操作概述>(强烈推荐) 技巧:<Linq To Objects - 如何操作字符串 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- LINQ to SQL语句(7)之Exists/In/Any/All/Contains
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...
- .NET深入实战系列—Linq to Sql进阶
最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基于:UserInfo与Class两个表,其中Cla ...
- LINQ Group By操作
在上篇文章 .NET应用程序与数据库交互的若干问题 这篇文章中,讨论了一个计算热门商圈的问题,现在在这里扩展一下,假设我们需要从两张表中统计出热门商圈,这两张表内容如下: 上表是所有政区,商圈中的餐饮 ...
- Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数
11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询
问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...
随机推荐
- Facet constraits error: Spring 4.1 requires Java 1.6 or newer.
问题来源: 在高版本的myeclipse,同步低版本的myeclipse提交的项目,可能会出现配置不一致. 问题描述: spring4.1不支持jdk1.6 注:在下载项目到本地的时候,myeclip ...
- [libxml2]_[XML处理]_[使用libxml2的xpath特性修改xml文件内容]
场景: 1.在软件需要保存一些配置项时,使用数据库的话比较复杂,查看内容也不容易.纯文本文件对utf8字符支持也不好. 2.这时候使用xml是最佳选择,使用跨平台库libxml2. 3.基于xpath ...
- [原]Machine Learing 入门 —— 开门第0篇
一.最近懒了 7月没怎么写博客,倒是一直在学Machine Learning的入门知识,在这里给大家推荐一个不错的自学网站:https://www.coursera.org/ ,Andrew Ng是联 ...
- Android(java)学习笔记11:生产者和消费者之等待唤醒机制
1. 首先我们根据梳理我们之前Android(java)学习笔记70中,关于生产者和消费者程序思路: 2. 下面我们就要重点介绍这个等待唤醒机制: (1)第一步:还是先通过代码体现出等待唤醒机制 下面 ...
- “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法
“标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable& ...
- 2018.11.1 Hibernate中的Mapper关系映射文件
Customer.hbm.xml 基本的参数都在里面了 <?xml version="1.0" encoding="UTF-8"?> <!DO ...
- Android学习笔记_32_通过WebView实现JS代码与Java代码互相通信
webview两种实现方法,覆盖onKeyDown()方法 缓存 WebSettings应用注意的几个问题 1.要实现JS代码与Java代码互相通信,需要通过Android的WebView控件,在视图 ...
- 【题解】洛谷P1495 曹冲养猪 (中国剩余定理)
洛谷P1495:https://www.luogu.org/problemnew/show/P1495 思路 建立了a个猪圈 有b头猪没有去处 即x≡b(mod a) x即是ans 把所有的关系全部列 ...
- 全文搜索引擎 Elasticsearch 安装踩坑记录
一.安装 Elastic 需要 Java 8 环境.如果你的机器还没安装 Java 安装完 Java,就可以跟着官方文档安装 Elastic.直接下载压缩包比较简单. $ wget https://a ...
- js中实现页面跳转(返回前一页、后一页)
一:JS 重载页面,本地刷新,返回上一页 代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a ...