在http://www.cnblogs.com/2018/category/262512.html 这些文章中提到
WCF Data Service和WCF RIA Service的使用,在实际的使用过程中会经常的使用linq,为此把这些概念解析一下。
序列
IEnumerable<T> ,这个类型是关键,LINQ的标准查询操作符都需要使用该类型对象作为参数
查询操作符
是指在LINQ查询上下文事业能够的、一系列扩展方法的集合,是实现linq的最重要的一类元素
预定义的标准查询操作符:
| 过滤 |
OfType, Where |
| 投影 |
Select, SelectMany |
| 分区 |
Skip, SkipWhile, Take, TakeWhile |
| 连接 |
GroupJoin, Join |
| 串联 |
Concat |
| 排序 |
OrderBy, OrderByDescending, Reverse, ThenBy, ThenByDescending |
| 分组 |
GroupBy, ToLookup |
| 集合 |
Distinct, Except, Intersect, Union |
| 转换 |
AsEnumerable, AsQueryable, Cast, ToArray, ToDictionary, ToList |
| 等同 |
SequenceEqual |
| 元素 |
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, |
| 生成 |
LastOrDefault, Single, SingleOrDefault |
| 数量 |
DefaultIfEmpty, Empty, Range, Repeat |
| 聚集 |
All, Any, Contains |
查询表达式
查询表达式提供了一种继承于语言中的、用于编写查询语句的语法。编译器自动将其转换为对标准查询操作符的调用。
查询本操作符和查询表达是对应关系
| 查询操作符 |
查询表达式(C#) |
| All |
无 |
| Any |
无 |
| Average |
无 |
| Cast |
使用显式类型的范围变量,如 from int i in numbers |
| Count |
无 |
| Distinct |
无 |
| GroupBy |
group … by |
| GroupJoin |
join … in … on … |
| Join |
join … in … on … |
| LongCount |
无 |
| Max |
无 |
| Min |
无 |
| OrderBy |
orderby |
| OrderByDescending |
orderby … descending |
| Select |
select |
| SelectMany |
多个Frrom子句 |
| Skip |
无 |
| SkipWhile |
无 |
| Sum |
无 |
| Take |
无 |
| TakeWhile |
无 |
| ThenBy |
orderby …, … |
| ThenByDescending |
orderby …, …descending |
| Where |
where |
两种写法相同效果的例子
| 查询操作符 |
查询表达式 |
| SampleData.Books .Where(book => book.Title == "Funny Stories") .OrderBy(book => book.Title) .Select(book => new {book.Title, book.Price}); |
from book in SampleData.Books where book.Title == "Funny Stories" orderby book.Title select new {book.Title, book.Price}; |
根据情况和语言中的对应限定关系选择使用。