程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Enumerable類成員函數的參數的幾種寫法

Enumerable類成員函數的參數的幾種寫法

編輯:C#入門知識

System.Linq.Enumerable類為我們提供了許多擴展方法,一般實現了IEnumerable<T>接口的類型都能被擴展,比如Enumerable類中定義了OrderBy方法,該方法用來根據某個鍵值對目標值序列排序,那麼int[] 類型就能擁有OrderBy這個方法了。

      其中OrderBy方法有兩個參數,一個為要擴展類型的對象:this IEnumerable<TSource> source;一個就是返回排序鍵值的委托:Func<TSource, TKey> keySelector。其中Func是一個TSource類型參數,返回TKey類型值的委托,需要說的是,該參數有多種寫法:1、

1、直接用Lambda表達式:

1 int[] sets={1,3,6,4,3,8,7};
2 var subset=sets.OrderBy((int a)=>{return a;});
3 foreach(var temp in subset)
4 {
5    console.write(temp);
6 }

 

2、用匿名方法:

1 int[] sets={1,3,6,4,3,8,7};
2 var subset=sets.OrderBy(delegate(int a){return a;});
3 foreach(var temp in subset)
4 {
5    console.write(temp);
6 }

 

3、新建委托:

 1 int key(int a)
 2 {
 3    return a;
 4 }
 5 
 6 int[] sets={1,3,6,4,3,8,7};
 7 var subset=sets.OrderBy(new Func<int,int>(key));
 8 foreach(var temp in subset)
 9 {
10     console.write(temp);
11 }

 

任何需要新建委托(new  MyDelegate(……))的地方,一般都能用匿名方法(delegate(參數){……}),也一般能用lambda表達式((參數)=>{函數體})。

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved