在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}; |
根据情况和语言中的对应限定关系选择使用。