Linq中的查询运算符:

  1. Where,                                      获得只满足条件的元素
  2. Select,SelectMany,                      针对一个(多个)查询对象,将查询的结果转换成需要的数据形式
  3. Take,TakeWhile,                          获得序列中指定位置之前(Take包括此位置,TakeWhile不包括)的元素
  4. Skip,SkipWhile,                           获得序列中指定位置之后(Skip不包括此位置,SkipWhile包括此位置)的元素
  5. OrderBy,OrderByDescending,        按升序(降序)方式对原有数据进行排序
  6. ThenBy,ThenByDescending,          按升序(降序)方式对原有数据进行次要排序
  7. Reverse,                                     将原有的数据颠倒排序
  8. GroupBy,                                    根据分组条件将数据放入不同的组中
  9. Distinct                                      去除数据中重复的值
  10. Union,                                        返回二个集合中内唯一的元素,即并集
  11. Intersect                                    返回同时出现在二个集合中的元素,即交集
  12. Except                                       返回一个集合中有另一个集合中没有的元素,即差集
  13. ToArray,ToList,ToDictionary,        将集合转换成数组,泛型列表,字典
  14. OfType                                      根据指定类型筛选IEnumerable的元素
  15. First,FirstOfDefault,                     返回集合中第一个元素或满足条件的第一个元素(FirstOfDefault没有满足条件的返回默认的值)
  16. ElementAt,ElementAtOrDefault     返回集合中指定位置的元素(ElementAtOrDefault索引超出范围则返回默认值)
  17. Range,                                      生成有关数字的集合
  18. Repeat                                      生成一个相关重复值的集合
  19. Any,                                          判断序列中是否有元素满足条件
  20. All,                                            判断序列中是否所有元素都满足条件
  21. Contains                                    判断序列中是否包含指定元素
  22. Average,Count,Max,Min,Sum        对集合取平均值,计数,取最大值,最小值,总和
View Code

1 //where条件过滤
2   static void WhereData()
3 {
4 var db = new NorthwindDataContext();
5 var stockBase = from b in db.BaseData2s where b.ID > 10683 select new { b.ID, b.ChiName };
6 foreach (var item in stockBase)
7 {
8 Console.WriteLine(item);
9 }
10 Console.WriteLine();
11 string[] nums = { "fdfd", "fdfd", "32", "fsdffsf", "fdf", "fdf", "4324342", "fddffa" };
12 //过滤字符长度小于索引的值
13   var shortnum = nums.Where((num, index) => num.Length < index);
14 foreach (var item in shortnum)
15 {
16 Console.WriteLine(item);
17 }
18 }
19 //分区运算符Take,Skip,TakeWhile,SkipWhile
20 static void TakeData()
21 {
22 var db = new NorthwindDataContext();
23 var based = from b in db.BaseData2s select new { b.ID, b.EngName };
24 //得到前三个的值
25 var first3 = based.Take(3);
26 foreach (var item in first3)
27 {
28 Console.WriteLine("first3:{0}\t{1}", item.ID, item.EngName);
29 }
30 Console.WriteLine();
31 //得到第三位后面的值
32 var last = based.Skip(3);
33 foreach (var item in last)
34 {
35 Console.WriteLine("last:{0}\t{1}", item.ID, item.EngName);
36 }
37 Console.WriteLine();
38 int[] numbers = { 5, 4, 8, 9, 3, 0, 6, 7, 2, 33 };
39 //得到小于9前面的值
40 var firstLess6 = numbers.TakeWhile(n => n < 9);
41 //得到元素值是否不是3的倍数,是则返回当前位置后的元素(包括当前元素)
42 var butfirst2 = numbers.SkipWhile(n => n % 3 != 0);
43 foreach (var item in firstLess6)
44 {
45 Console.WriteLine("first6:{0}", item);
46 }
47 Console.WriteLine();
48 foreach (var item in butfirst2)
49 {
50 Console.WriteLine("2:{0}", item);
51 }
52 }
53
54 //使用集合运算符Union并集,Intersect交集,Except差集,Distinct移除重复值
55 static void Linq1()
56 {
57 int[] numbers = { 2, 2, 3, 51, 51, 5, 5 };
58 var distinctnumbers = numbers.Distinct();
59 foreach (var item in distinctnumbers)
60 {
61 Console.WriteLine("distince:{0}", item);
62 }
63 Console.WriteLine();
64
65 int[] numberA = { 0, 2, 4, 5, 6, 8, 9 };
66 int[] numberB = { 1, 3, 4, 5, 7, 8, 11 };
67 distinctnumbers = numberA.Union(numberB);
68
69 foreach (var item in distinctnumbers)
70 {
71 Console.WriteLine("Union:{0}", item);
72 }
73 Console.WriteLine();
74 var intersectnumber = numberA.Intersect(numberB);
75 foreach (var item in intersectnumber)
76 {
77 Console.WriteLine("Intersect:{0}", item);
78 }
79 Console.WriteLine();
80 var Exceptnumber = numberB.Except(numberA);
81 foreach (var item in Exceptnumber)
82 {
83 Console.WriteLine("Except:{0}", item);
84 }
85 Console.WriteLine();
86 }
87
88 //使用分组运算符
89 static void LinqGroupBy()
90 {
91 string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
92 //以字符中的第一个字母分组
93 var wordGroups = from w in words group w by w[0] into g select new { FirstLetter = g.Key, Words = g };
94 foreach (var item in wordGroups)
95 {
96 Console.WriteLine("words that start with letter '{0}':", item.FirstLetter);
97 foreach (var w in item.Words)
98 {
99 Console.WriteLine(w);
100 }
101 }
102
103 var wordgroup2 = words.GroupBy(a => a[0]);
104 foreach (var item in wordgroup2)
105 {
106 Console.WriteLine("words that start with letter '{0}':", item.Key);
107 foreach (var w in item)
108 {
109 Console.WriteLine(w);
110 }
111 }
112 }
113
114 //元素运算符First,FirstOfDefault
115 static void LinqFirst()
116 {
117 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
118 var number = (from n in numbers where n >= 6 select n).First();
119 Console.WriteLine("First:{0}", number);
120 //查询第一个为2的倍数
121 int evenNum = numbers.First(n => n % 2 == 0);
122 Console.WriteLine();
123 Console.WriteLine(evenNum);
124
125 int[] numbers2 = { };
126 int firstDefault = numbers2.FirstOrDefault();
127 Console.WriteLine("firstDefault:{0}", firstDefault);
128 }
129
130 //限定运算符any,all,contains
131 static void LinqAny()
132 {
133 string[] words = { "blueberry", "chimpanzee", "abacus", "banana" };
134 //判断是否有字符包含'ba'元素
135 bool afterBa = words.Any(b => b.Contains("ba"));
136 Console.WriteLine(afterBa);
137
138 //判断是否所有字符都包含'ba'元素
139 bool afterAll = words.All(b => b.Contains("ba"));
140 Console.WriteLine(afterAll);
141
142 }

转载于:https://www.cnblogs.com/JeJeXu/archive/2011/05/16/2047847.html

Linq标准查询运算及用法相关推荐

  1. LINQ标准查询操作符

    本文基于.NET Framework 2.0编写 本文PDF下载 推荐大家下载本文的PDF进行阅读,可以方便的使用书签来阅读各个方法,而且代码中的关键字是高亮显示的. 转载请注明出处. 一.投影操作符 ...

  2. LINQ标准查询操作符详解

     一. 关于LINQ        LINQ 英文全称是"Language-Integrated Query",中文为"语言集成查询",它是微软首席架构师.De ...

  3. LINQ:进阶 - LINQ 标准查询操作概述

    "标准查询运算符"是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 I ...

  4. NHibernate3剖析:Query篇之NHibernate.Linq标准查询

    本节内容 系列引入 NHibernate.Linq概述 标准查询运算符 结语 系列引入 NHibernate3.0剖析系列分别从Configuration篇.Mapping篇.Query篇.Sessi ...

  5. 一起谈.NET技术,NHibernate3.0剖析:Query篇之NHibernate.Linq标准查询

    系列引入 NHibernate3.0剖析系列分别从Configuration篇.Mapping篇.Query篇.Session策略篇.应用篇等方面全面揭示NHibernate3.0新特性和应用及其各种 ...

  6. NHibernate3.0剖析:Query篇之NHibernate.Linq标准查询

    系列引入 NHibernate3.0剖析系列分别从Configuration篇.Mapping篇.Query篇.Session策略篇.应用篇等方面全面揭示NHibernate3.0新特性和应用及其各种 ...

  7. C# LINQ标准查询操作符

    首先添加数据集合 1 [Serializable] 2 public class Racer : IComparable<Racer>, IFormattable 3 { 4 public ...

  8. mysql linq any查询_LINQ标准查询操作符详解(转)

    一. 关于LINQ LINQ 英文全称是"Language-Integrated Query",中文为"语言集成查询",它是微软首席架构师.Delphi 之父和 ...

  9. LINQ 的标准查询操作符

    摘自msdn (http://msdn.microsoft.com/zh-cn/magazine/cc337893.aspx) LINQ 的标准查询操作符 John Papa 代码下载位置: Data ...

最新文章

  1. go gin框架:请求静态图片资源(可用于搭建图床等应用)
  2. Lotto(DFS处理)
  3. 人工智能全产业链深度透析--(综合)
  4. 计算机参观企业心得,走进联想 感悟联想——北航MBA参观联想集团总部
  5. java多对多关系实例_【Java一对多关系实例公布,你的Java真的可以玩的这么好吗】- 环球网校...
  6. Windows域环境下的网络问题
  7. Java Netty (1)
  8. 稀疏编码: LASSO,近端梯度优化(PGD),迭代软阈值算法(ISTA),L-Lipschitz条件,软阈值
  9. mac 备份android 手机通讯录导入iphone,iphone如何导出通讯录(轻松教你iPhone备份通讯录的方法)...
  10. Kerberos的工作原理
  11. Adobe软件中PS、PR、AE、AI软件如何安装【附软件下载】
  12. android app 获得root 权限管理,Android获取超级管理员权限的实现
  13. Hot Sale Ray Ban Predator 2 Sunglasses, Cheap Ray Ban Jackie OhhⅡ
  14. Nexus5刷Firefox OS 2.0
  15. 订单漏单问题分析及解决方案
  16. python爬虫爬取的数据与浏览器获取的数据不一样 爬虫爬取到的数据一直不变
  17. 关于Web实现前后端分离,前后端解耦
  18. 服务器显示error1962,电脑出现error1962怎么解决
  19. 使用VLC media player搭建简单的流媒体服务器
  20. 【Xilinx DDS】Vivado代码实现FPGA DDS

热门文章

  1. LOJ-10096(强连通+bfs)
  2. “java程序打成jar包 如何处理第三方jar包”
  3. EonerCMS——做一个仿桌面系统的CMS(二)
  4. 如何在运行时确定对象类型(RTTI)
  5. Android App列表之游标ListView(索引ListView)
  6. 自动化设计模式Page Object
  7. [转]布隆过滤器详解
  8. C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态
  9. Modules(最小树形图)
  10. Haroopad安装与配置: Linux系统下最好用的Markdown编辑器