LINQ 学习笔记7 Kevin

Func Delegates(函数 委托)

Func Delegae的声明:

public delegate TR Func<TR>();
public delegate TR Func<T0, TR>(T0 a0);
public delegate TR Func<T0, T1, TR>(T0 a0, T1 a1);
public delegate TR Func<T0, T1, T2, TR>(T0 a0, T1 a1, T2 a2);
public delegate TR Func<T0, T1, T2, T3, TR>(T0 a0, T1 a1, T2 a2, T3 a3);

其中,TR代表返回的数据类型,T0,T1,T2,T3代表输入的4个参数。从声明可以看出来,标准查询操作拥有的委托参数不会超过4个。TR返回的是参数列表中的最后一个的类型。

例子:

public static IEnumberable<T> Where<T>(this IEnumberable<T> source,Func<T,bool> predicate);

参数被指定了FUNC<T,bool>,从这里可以知道,predicate方法返回的的类型是bool类型。

标准查询操作 字母交叉引用

会延迟查询的操作:


AsEnumerable

Cast

Concat

DefaultEmpty

Distinct

Empty

Except

GroupBy

GroupJoin

Intersect

Join

ofType

OrderBy

OrderByDescending

Range

Repeat

Reverse

Select

SelectMany

Skip

SkipWhile

Take

TakeWhile

ThenBy

ThenByDescending

Union

Where

两种方式的混合使用

并非所有的场合都可以使用标准查询,可以两种方式混合使用。

例子:

IEnumberable<int> oddNumbers =(

from n in nums where n % 2==1 select n).Reverse();

 

 

原文地址:https://www.cnblogs.com/kfx2007/p/2706291.html