集合操作符对元素的集合或序列集合进行操作,并返回一个集合。LINQ共有4种集合查询操作符:Distinct、Union、Intersect和Except。

1. Distinct

  Distinct操作符删除集合中重复的值,并返回该集合中互不相同的元素。

1>. 原型定义

  1. public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source);
  1. public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source, IEqualityComparer<TSource> comparer);

2>. 示例

  1. int[] fibonacci = new int[] { , , , , , , , };
  2. var expr = from f in fibonacci
  3. select f;
  4. expr.Distinct();
  1. int[] fibonacci = new int[] { , , , , , , , };
  2. var expr = from f in fibonacci
  3. where f >
  4. select f;
  5. expr.Distinct();
  1. var expr = from p in context.Products
  2. select p.ProductName;
  3. expr.Distinct();
  1. var expr = context.Products
  2. .Select(p => p.ProductName)
  3. .Distinct();
  1. int[] fibonacci = new int[] { , , , , , , , };
  2. var expr = fibonacci.Distinct().Count();
  1. var expr = context.Products
  2. .Select(c => c.CategoryID)
  3. .Distinct()
  4. .Count();
  1. int[] fibonacci = new int[] { , , , , , , , };
  2. var expr = fibonacci.Count(f => f % == );

2. Union

  Union操作符返回两个序列或集合并集中的每个互不相同的元素。与Concat操作符不同,Union操作符返回互不相同的元素,而Concat操作符将返回所有的值。

1>. 原型定义

  1. public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
  1. public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);

2>. 示例

  1. int[] fibonacci = new int[] { , , , , , , , };
  2. int[] factorial = new int[] { , , , , };
  3.  
  4. IEnumerable<int> expr = fibonacci.Union(factorial);
  5.  
  6. foreach (int item in expr)
  7. {
  8. Console.Write(item + " ");
  9. }

3. Intersect

  Intersect操作符返回两个序列的交集,即返回那些同时存在于两个序列或集合中的值。

1>. 原型定义

  1. public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
  1. public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);

2>. 示例

  1. int[] fibonacci = new int[] { , , , , , , , };
  2. int[] factorial = new int[] { , , , , };
  3.  
  4. IEnumerable<int> expr = fibonacci.Intersect(factorial);
  5.  
  6. foreach (int item in expr)
  7. {
  8. Console.Write(item + " ");
  9. }

4. Except

  Except操作符与Intersect操作符相反,它返回两个序列中不同的部分,返回序列中所有不重复的值。

1>. 原型定义

  1. public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
  1. public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);

2>. 示例

  1. int[] fibonacci = new int[] { , , , , , , , };
  2. int[] factorial = new int[] { , , , , };
  3.  
  4. IEnumerable<int> expr = fibonacci.Except(factorial);
  5.  
  6. foreach (int item in expr)
  7. {
  8. Console.Write(item + " ");
  9. }

LINQ系列:Linq to Object集合操作符的更多相关文章

  1. LINQ系列目录

    1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...

  2. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

  3. LinQ系列文章

    温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...

  4. Linq/List/Array/IEnumerable等集合操作

    来源:http://www.cnblogs.com/liushanshan/archive/2011/01/05/1926263.html 目录 1    LINQ查询结果集    1 2    Sy ...

  5. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  6. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  7. Linq 支持动态字查询集合, 也就是说根据传入的值进行查询。

    Linq 支持动态字查询集合, 也就是说根据传入的值进行查询. 比如我们有个类Patient, 其中有个字段PatientName, 现在有Patient集合, 想要查询PatientName为&qu ...

  8. Linq系列

    LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分

  9. LINQ之LINQ to Objects(上)

    LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. 1.LINQ体系结构 从上图可以看出,L ...

随机推荐

  1. canvas小结

    前段时间在公司没什么事干,研究了一下canvas,在实际开发中还没正式应用过,但是已经深深感觉到其魅力之处.下面写一写我认为canvas中比较重要的点,如有理解错误,欢迎指正. 首先canvas是h5 ...

  2. 【JBOSS】 JBOSS目录结构

    JBOSS在默认情况下可以用3种方式启动minimal,default和all.三种模式内部的模块数量依次递增   例如: 1-执行JBOSS_HOME/bin/run.bat批量处理文件启动JBos ...

  3. JS代码将数据导入Excel

    如果在别的浏览器中无法导入,尝试用IE浏览器 function AutomateExcelall(){try { oXL = new ActiveXObject('Excel.Application' ...

  4. tcpdum使用

    安装tcpdump包:yum install -y tcpdump ,不加”-i eth0”是表示抓取所有的接口包括lo. 1.抓取包含10.88.88.96的数据包 # tcpdump -i eth ...

  5. <十五>JDBC_使用 DBUtils 进行更新、查询操作

    详解待续... DBUtilsTest.java import java.sql.Connection;import java.sql.Date;import java.sql.ResultSet;i ...

  6. Python之路Day15--JavaScript(一)

    一.JavaScript简介 JavaScript是世界上最流行的脚本语言,因为你在电脑.手机.平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱动的. ...

  7. 【noip 2016】 蚯蚓(earthworm)

    100分程序,写了2天+1小时 →题目在这里← 大神就是厉害--写的程序居然看都看不懂,还有就是cena上过了但是luogu上一直是恶心的TLE 首先是考虑p=0时,数组大小开到了1100000,然后 ...

  8. css屏蔽元素的鼠标事件pointer-events

    // 屏蔽点击 $('body').css('pointer-events', 'none'); //恢复默认 $('body').css('pointer-events', 'auto');   用 ...

  9. elasticsearch 之mapping

    搭好elk 后,有时候会发现kibana 统计数据时,数据类型不对,这个时候就和elasticsearch的mapping有关,虽然我们可以用logstash修改传入es里的数据类型,比如 float ...

  10. TP字母函数

    http://wenku.baidu.com/view/2a0ec9c13c1ec5da50e27099.html?from=search