Linq擴充套件方法

2021-10-20 14:10:53 字數 1329 閱讀 8315

如果要擴充套件linq查詢方法集,只需要為ienumerable擴充套件方法。

第一種:擴充套件聚合方法,類似已有python基礎教程的max、min,可以給具體型別擴充套件,也可以給泛型擴充套件。

using system;

using system.collections;

using system.collections.generic;

using system.data;

using system.io;

using system.linq;

; var query1 = numbers1.median();

console.writeline(

"double: median = "

+ query1)

;

var numbers2 = new int

; var query2 = numbers2.median();

console.writeline($"int:median =");

var str1 = new string;

; var query3 = str1.median(x =

> x.length)

; console.writeline($"string:");

}}public static class

linqextension

var sortedlist = source.orderby(x =

> x)

;int itemindex =

(int

)sortedlist.count()/

2;// 索引從0開始,itemindex總是偏大

if(sortedlist.count()%

2==0)

else

}//int型別過載求中位數

public static double median(this ienumerable<

int> source)

//泛型,需傳入選擇器

public static double median

(this ienumerable source,func selector)

}}

第二中:擴充套件返回集合的方法,類似where、orderby

public static class

linqextension

}return

list;}

}

量變會引c#教程起質變。

LinQ 擴充套件方法

本節主要講解擴充套件方法,涉及 linq 的具體知識不多。net framework 為程式設計人員提供了很多的類,很多的方法,但是,不論 net framework 在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,例如 你想讓字串物件具有topascal方法,含義就是將字串轉化為 p...

LinQ 擴充套件方法

本節主要解說擴充套件方法,涉及 linq 的詳細知識不多。net framework 為程式設計人員提供了非常多的類,非常多的方法,可是,不論 net framework 在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,比如 你想讓字串物件具有topascal方法,含義就是將字串轉化為...

擴充套件方法和LINQ

以前一直看到方法列表中有種方法的圖示是 普通方法的紅立方體右邊還有個箭頭 就像這樣 原來這種方法就是擴充套件方法 擴充套件方法不能訪問它擴充套件的型別的私有成員。呼叫擴充套件方法只是呼叫靜態方法的一種新語法 public static classa s class program 這樣就擴充套件了s...