LINQ系列:Linq to Object集合操作符
集合操作符对元素的集合或序列集合进行操作,并返回一个集合。LINQ共有4种集合查询操作符:Distinct、Union、Intersect和Except。
1. Distinct
Distinct操作符删除集合中重复的值,并返回该集合中互不相同的元素。
1>. 原型定义
public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source);
public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source, IEqualityComparer<TSource> comparer);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciselect f; expr.Distinct();
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = from f in fibonacciwhere f > 5select f; expr.Distinct();
var expr = from p in context.Productsselect p.ProductName; expr.Distinct();
var expr = context.Products.Select(p => p.ProductName).Distinct();
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = fibonacci.Distinct().Count();
var expr = context.Products.Select(c => c.CategoryID).Distinct().Count();
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; var expr = fibonacci.Count(f => f % 2 == 0);
2. Union
Union操作符返回两个序列或集合并集中的每个互不相同的元素。与Concat操作符不同,Union操作符返回互不相同的元素,而Concat操作符将返回所有的值。
1>. 原型定义
public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; int[] factorial = new int[] { 1, 2, 6, 24, 120 };IEnumerable<int> expr = fibonacci.Union(factorial);foreach (int item in expr) {Console.Write(item + " "); }
1 2 3 5 8 13 21 6 24 120
3. Intersect
Intersect操作符返回两个序列的交集,即返回那些同时存在于两个序列或集合中的值。
1>. 原型定义
public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; int[] factorial = new int[] { 1, 2, 6, 24, 120 };IEnumerable<int> expr = fibonacci.Intersect(factorial);foreach (int item in expr) {Console.Write(item + " "); }
1 2
4. Except
Except操作符与Intersect操作符相反,它返回两个序列中不同的部分,返回序列中所有不重复的值。
1>. 原型定义
public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);
2>. 示例
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 }; int[] factorial = new int[] { 1, 2, 6, 24, 120 };IEnumerable<int> expr = fibonacci.Except(factorial);foreach (int item in expr) {Console.Write(item + " "); }
3 5 8 13 21
转载于:https://www.cnblogs.com/libingql/p/4042946.html
LINQ系列:Linq to Object集合操作符相关推荐
- mysql linq any查询_LINQ标准查询操作符详解(转)
一. 关于LINQ LINQ 英文全称是"Language-Integrated Query",中文为"语言集成查询",它是微软首席架构师.Delphi 之父和 ...
- .NET深入实战系列—Linq to Sql进阶
.NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- 【LINQ】LINQ 简介
LINQ基本概念 LINQ(语言集成查询) 是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已经成为了编程语言的组成部分,在编程时可以进行语法检查, ...
- Kotlin 学习笔记(二)—— 数据类、密闭类、循环写法以及常用集合操作符
在上篇笔记中,我们对 Kotlin 的基本类型.关键字.类与对象,以及与 Java 之间互调的内容有了一些认识,这篇笔记来看看 Kotlin 中几种特殊的类,以及集合相关的常用操作. 1. Kotli ...
- 重学JavaScript系列——(六)集合引用类型
重学JavaScript系列--(六)集合引用类型 博主以扎实JavaScript基础为目的,以<JavaScript高级程序设计(第四版)>为核心参考资料,以一个"复习者&qu ...
- 【Groovy】map 集合 ( map 集合操作符重载 | - 操作符重载 | 代码示例 )
文章目录 一.map 集合 " - " 操作符重载 二.完整代码示例 一.map 集合 " - " 操作符重载 对 map 集合 使用 " - &qu ...
- kotlin 添加第一个 集合_Flutter开发必学Dart语法篇之集合操作符函数与源码分析...
简述: 在上一篇文章中,我们全面地分析了常用集合的使用以及集合部分源码的分析.那么这一节讲点更实用的内容,绝对可以提高你的Flutter开发效率的函数,那就是集合中常用的操作符函数.这次说的内容的比较 ...
- dart string 转 bool_Dart语法篇之集合操作符函数与源码分析(三)
简述: 在上一篇文章中,我们全面地分析了常用集合的使用以及集合部分源码的分析.那么这一节讲点更实用的内容,绝对可以提高你的Flutter开发效率的函数,那就是集合中常用的操作符函数.这次说的内容的比较 ...
- Java集合系列之四大常用集合(ArrayList、LinkedList、HashSet、HashMap)的用法
Java集合系列之四大常用集合(ArrayList.LinkedList.HashSet.HashMap)的用法 ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是A ...
最新文章
- Dynamic Setting ImageUrl In DataPager
- 数据挖掘 —— 模型评估
- jQuery使用(十二):工具方法之type()之类型判断
- Sublime Text + CTags + Cscope (部分替代Source Insight)
- 修改kafka java环境_单节点Kafka、Zookeeper安装、启用过程(Windows OS环境)
- eclipse adt如何切换到设计界面_如何将你的UI界面设计的更精致?不仅仅是运用对比,还要注意细节 | 分享...
- mysql事务隔离的锁_mysql锁及四种事务隔离级别笔记
- 通用的流氓软件手动清理方法
- LaTeX下载安装与使用
- 什么是游戏盾,如何使用
- android edge 去广告,edge浏览器怎么去广告? edge浏览器去广告插件adsafe的使用方法...
- C语言课程设计之火车订票系统实现
- Instant Contiki
- noip赛后【微笑】
- MailConnectException: Couldn‘t connect to host
- asp.net(c#)中IsPostBack是什么意思
- 用计算机控制食品生产论文,计算机控制系统论文范文2篇
- 百度地图api根据详细地址反查坐标
- Android——为图片增加水印,并且保存到图库刷新
- 利用7z程序压缩、解压
热门文章
- 用上了Godaddy的美国主机
- 慢日志之一:开启mysql慢查询日志并使用mysqldumpslow命令查看,分析诊断工具之四...
- 6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱[转]
- 大规模分布式深度网络
- Go语言的一些使用心得
- 二维数组按某个键值排序 FOR PHP
- XHTML 教程 续二
- 未捕获异常string was not recognized_给你代码:PHP7中的异常与错误处理
- Hadoop2.2伪分布式搭建步骤
- Hibernate----面试题