system.linq.enumerable類為我們提供了許多擴充套件方法,一般實現了ienumerable介面的型別都能被擴充套件,比如enumerable類中定義了orderby方法,該方法用來根據某個鍵值對目標值序列排序,那麼int 型別就能擁有orderby這個方法了。
其中orderby方法有兩個引數,乙個為要擴充套件型別的物件:this ienumerablesource;乙個就是返回排序鍵值的委託:funckeyselector。其中func是乙個tsource型別引數,返回tkey型別值的委託,需要說的是,該引數有多種寫法:1、
1、直接用lambda表示式:
1int
sets=;
2var subset
=sets.orderby((
inta)
=>);3
foreach
(var temp
insubset)4
2、用匿名方法:
1int
sets=;
2var subset
=sets.orderby(
delegate
(int
a));
3foreach
(var temp
insubset)4
3、新建委託:
1int
key(
inta)25
6int
sets=;
7var subset
=sets.orderby(
newfunc
<
int,
int>
(key));
8foreach
(var temp
insubset)9
任何需要新建委託(new mydelegate(……))的地方,一般都能用匿名方法(delegate(引數)),也一般能用lambda表示式((引數)=>)。
Enumerable類成員函式的引數的幾種寫法
system.linq.enumerable類為我們提供了許多擴充套件方法,一般實現了ienumerable介面的型別都能被擴充套件,比如enumerable類中定義了orderby方法,該方法用來根據某個鍵值對目標值序列排序,那麼int 型別就能擁有orderby這個方法了。其中orderby方法...
Enumerable類成員函式的引數的幾種寫法
system.linq.enumerable類為我們提供了許多擴充套件方法,一般實現了ienumerable介面的型別都能被擴充套件,比如enumerable類中定義了orderby方法,該方法用來根據某個鍵值對目標值序列排序,那麼int 型別就能擁有orderby這個方法了。其中orderby方法...
類靜態成員和類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...