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 fibonacci
           select f;
expr.Distinct();
int[] fibonacci = new int[] { 1, 1, 2, 3, 5, 8, 13, 21 };
var expr = from f in fibonacci
           where f > 5
           select f;
expr.Distinct();
var expr = from p in context.Products
           select p.ProductName;
expr.Distinct();
var expr = context.Products
    .Select(p => p.ProductName)
    .Distinct();

2. Union

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

时间: 2024-08-26 22:36:25

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

linq var出来的object取值问题

var allLineData = from ss in LinkToSQL.CadNozTable                                      from tt in LinkToSQL.TasCom                                      where tt.TasComID == ss.FK_TasComID && ss.FK_TasComID == ID                                   

Linq系列

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

Linq之Linq to XML

目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将word文档另存为xml文件,这也提供了一种通过操作xml,操作word的一种方式)以及数据库中,都可以看到 XML.而linq to xml提供了一种操作xml更便捷的方式. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类 Li

Linq技术四:动态Linq技术 -- Linq.Expressions

前面介绍了Linq的三个方面应用:Linq to SQL, Linq to XML和Linq to Object,这篇介绍一下动态Linq的实现方式及应用场景. 命名空间: System.Linq; System.Linq.Expressions; 应用Linq的时候,我们都知道只需要Lambda表达式就行,但有些场景仅仅只使用Data Model的字段名操作是不够的或者不方便的. 场景1:假设我们需要拼接Where条件进行查询,一种方式可以拼接IQueryable的表达式.但我想像写SQL语句

C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式)

学习书籍: <C#本质论> 1--C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式). --用AggregateException处理Task上的未处理异常. --取消任务. CancellationToken --async修饰方法, 返回Task. task.wait(100)可以阻塞现场. a

Linq之Linq to Sql

目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍linq to sql的内容.个人觉得linq to sql在实际开发中在中小型项目中用的比较多,在中小型项目用ef或者nhibernate这些orm确实有点重量级.Linq to Sql提供了丰富的功能,完全可以满足日常数据访问的需求.使用方法也非常简单.灵活. 系列文章 Linq之Lambda表达

Math对象是个organizational object(集合的对象)

Math对象是个organizational object(集合的对象),它只是数学相关的公用方法与常量的集合.Math对象中没有变量,即这个对象没有状态——不能用于存储任何事物.它唯一包含的数据只是几个常量,例如PI(3.14).不过,Math对象的方法很好用.例如random()方法就能产生介于0与1之间的随机数.

How to cast List&lt;Object&gt; to List&lt;MyClass&gt; Object集合转换成实体集合

List<Object> list = getList(); return (List<Customer>) list; Compiler says: cannot cast List<Object> to List<Customer> 不能将Object集合强制转换成实体集合! you can always cast any object to any type by up-casting it to Object first. in your case:

List&lt;Object&gt;集合按照Object的某个字段排序,解决取不到父类字段问题

<p>最近在做一个项目,里边有大量的排序需求,神烦!如果每个排序需求都做一个接口的话,那样工作量就太大了,所以就要有一个通用一些的排序工具类,来解决排序问题.</p><p>由于排序需求很大一部分都是List集合排序,所以就从网上找了一个List<Object>集合排序工具类来使用,这个工具类可以很灵活的传入需要排序的字段和需要的升序或者降序来排序.</p> public class SortListUtil { public static fin