明净

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
操作符
类别
语义
示例
Where
筛选操作符(Restriction)
Where(Predicate)
Dim lowNums = numbers.Where(Function(num) num < 5)
Select
投影操作符(Projection)
Select(匿名函数)
Dim lowNums = numbers.Select(Function(num) num*num)
SelectMany
投影操作符(Projection)
返回多行结果,用于多表的交叉连接(cross join)
Dim res = Employees.SelectMany(Function(e) e.Family.Select(Function(c)c.name))
Skip
分块操作符(Partitioning)
跳过前n个元素
Dim res=data.Skip(4)
SkipWhile
分块操作符(Partitioning)
跳过起始处使条件为真的所有元素
Dim res=data.SkipWhile(Function(i) i%2 = 0)
Take
分块操作符(Partitioning)
返回开头之处的n个元素
Dim res=data.Take(3)
TakeWhile
分块操作符(Partitioning)
返回起始处使条件为真的所有元素
Dim res=data.TakeWhile(Function(i) i%3 = 0)
Join
连接操作符
内连接两个或多个表,仅限于Equals运算符
from sup in suppliers join cust in customers on sup.Country equals cust.Country
GroupJoin
连接操作符
类似于LEFT OUTER JOIN,右侧集合匹配于左侧集合键值的元素被分组
From cust In customers Group Join ord In orders On cust.CustomerID Equals ord.CustomerID Into CustomerOrders = Group, OrderTotal = Sum(ord.Total)
Concate
合并操作符
用于连接两个序列
returnValue = firstSeq.Concat(secondSeq)
OrderBy
排序操作符(Ordering)
 
Dim query As IEnumerable(Of Person) = Persons.OrderBy(Function(p) p.Age)
OrderByDescending
排序操作符(Ordering)
   
ThenBy
排序操作符(Ordering)
   
ThenByDescending
排序操作符(Ordering)
   
Reverse
排序操作符(Ordering)
   
GroupBy
分组操作符
 
Dim numbers = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}
Dim numberGroups = From num In numbers Group num By remainder5 = (num Mod 5) Into numGroup = Group Select New With {.Remainder = remainder5, .numbers = numGroup}
Distinct
集合操作符
去重复
 
Union
集合操作符
集合并
 
Intersect
集合操作符
集合交
 
Except
集合操作符
集合差
 
AsEnumerable
转换操作符
用于把一个IEnumerable的派生类型转化为IEnumerable类型
 
AsQueryable
转换操作符
IEnumerable(Of T)转化为IQueryable(Of T).
 
ToArray
转换操作符
转换为数组
 
ToList
转换操作符
转换为List
 
ToDictionary
转换操作符
转换为一对一的字典(键-值对的集合)
 
ToLookup
转换操作符
转换为一对多的字典(键-值集的集合)
 
OfType
转换操作符
获取指定类型的元素组成一个数组
object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 };
var doubles = numbers.OfType<double>();
Cast
转换操作符
把序列的所有元素转换为指定类型
 
SequenceEqual
相等操作符
两个序列的元素依次相同返回真。使用元素所属类的IEqualityComparer(Of T) 泛型界面做相等比较
 
First
元素操作符
返回序列第一个元素(或满足条件第一个元素),没有则异常
 
FirstOrDefault
元素操作符
返回序列第一个元素,没有则返回空或默认值
 
Last
元素操作符
返回序列最后一个元素,没有则异常
 
LastOrDefault
元素操作符
返回序列最后一个元素,没有则返回空或默认值
 
Single
元素操作符
返回序列唯一元素,如果没有元素或多个元素则异常
 
SingleOrDefault
元素操作符
返回序列唯一元素,如果没有元素或多个元素则空或默认值
 
ElementAt
元素操作符
返回序列指定元素,失败则异常
 
ElementAtOrDefault
元素操作符
返回序列指定元素,失败则空或默认值
 
DefaultIfEmpty
元素操作符
返回序列,如果序列为空则返回元素的默认值
For Each number As Integer In numbers.DefaultIfEmpty()〈br> output.AppendLine(number)
Next
All
序列元素数量操作符
序列所有元素满足条件则为真
 
Any
序列元素数量操作符
序列有一个元素满足条件则为真
 
Contains
序列元素数量操作符
是否包含一个元素
 
Count
统计操作符
计数,可选一个谓词
int oddNumbers = numbers.Count(n => n% 2 == 1);
LongCount
统计操作符
计数,返回Int64类型
 
Sum
统计操作符
求和,可选对一个lambda函数表达式
double totalChars = words.Sum(w => w.Length);
Min
统计操作符
最小值,可选对一个lambda函数表达式
int shortestWord = words.Min(w => w.Length);
Max
统计操作符
   
Average
统计操作符
   
Aggregate
统计操作符
参数为一个委托,在序列的每个元素上执行该委托。委托的第一个参数为当前累计值,第二个参数为当前元素,返回值为新的累计值
Dim reversed As String = words.Aggregate(Function(ByVal current, ByVal word) word & " " & current)
equals/Equals
关键字
用于Join子句
 
from/From
关键字
   
in/In
关键字
指出数据源
 
into/Into
关键字
用于Group By子句
 
key
关键字
用于Group By子句的无名类型
 
let
关键字
给表达式定义别名
From prod In products Let Discount = prod.UnitPrice * 0.1 Where Discount >= 50 Select prod.ProductName, prod.UnitPrice, Discount
Group
关键字
在GroupBy子句的Into中用于辨识分组结果
From num In numbers Group num By remainder5 = (num Mod 5) Into Group
Range
方法
产生一个整数序列
From n In Enumerable.Range(100, 50)
Repeat
方法
产生一个整数序列
From n In Enumerable.Repeat(7, 10)
posted on 2021-06-18 16:00  明净  阅读(29)  评论(0编辑  收藏  举报