Dynamite動態排序庫

2021-05-08 12:13:44 字數 741 閱讀 3139

易於使用和高效能動態排序庫支援類似 sql 語法和巢狀/複雜的表示式,使用 system.linq.expression 動態生成快速比較器。

使用此庫就可以使用文字的排序表示式對list進行排序 :

listperson;

person.sort("name.length, birthdate descending");

還可以使用 linq 一樣的 orderby 這樣:

foreach (person p persons.orderby ("birthdate.year,name")

主要特點:

1 、易於使用:重寫了已經存在的擴充套件方法sort和orderby

2、高效能:由於使用linq的動態編譯的表示式

3、支援arrays, list, ienumerable, iqueryable和dataset

4、支援所有的public 的屬性和字段,包括nullable型別

5、支援所有的引用型別(class)和值型別(struct)的字段和屬性

6、支援巢狀的屬性表示式,例如mother.name.length

7、字串大小寫無關

8、開放式的設計:可以自己擴充套件comparisondelegates, icomparer和非泛型的 icomparer 用於其它的排序場景。

dynamite 庫設計的使用: dynamite: high performace dynamic sorting using expressions

Dynamite動態排序庫

易於使用和高效能動態排序庫支援類似 sql 語法和巢狀 複雜的表示式,使用 system.linq.expression 動態生成快速比較器。使用此庫就可以使用文字的排序表示式對list進行排序 listperson person.sort name.length,birthdate descend...

Dynamite動態排序庫

易於使用和高效能動態排序庫支援類似 sql 語法和巢狀 複雜的表示式,使用 system.linq.expression 動態生成快速比較器。使用此庫就可以使用文字的排序表示式對list進行排序 listperson person.sort name.length,birthdate descend...

動態庫專題 靜態庫和動態庫

linux中有兩類函式庫,分別是靜態庫和動態庫。靜態函式庫 這類庫的名字一般是lib a 利用靜態函式庫編譯成的檔案比較大,因為整個函式庫的所有資料都會被整合進目標 中,他的優點就顯而易見了,即編譯後的執行程式不需要外部的函式庫支援,因為所有使用的函式都已經被編譯進去了。當然這也會成為他的缺點,因為...