C 中集合型別需要按多個條件排序

2022-02-17 06:43:27 字數 881 閱讀 9352

在 c# (.net 3.5 之後) 中集合是可以通過 orderby() 和 orderbydescending()方法來進行排序的,

如果需要集合中的元素是物件,還可以通過 lambda表示式進行按屬性排序,如:

定義乙個學生類:

class

student

public

string name

public

string hometown

public student(int id, string name, string

hometowm)

}

按學生名字排序,如果同名的,則按學號公升序排序:

listlist = new list() ;
listbox.itemssource = list.orderby(x => x.name); // just order by name

listbox2.itemssource = list.orderby(x => x.name).thenbydescending(x => x.id); // order by name, and then order desc by id

}
由上可見,多個條件時使用的是thenby()以及thenbydescending()方法

結果:只按 name 排序:

先按 name 排序,再按 id 逆序:

Python中集合(set)型別

python的set和其他語言類似,是乙個無序不重複元素集,基本功能包括關係測試和消除重複元素.集合物件還支援union 聯合 intersection 交 difference 差 和sysmmetric difference 對稱差集 等數 算.sets 支援 x in set,len set ...

C 中集合彙總

平時敲 只關注如何使用,沒有深入去研究一些本質性的東西,靠死記硬背,不去真正理解,其實最後是很難記住的。對於c 常見的集合,自己平時好像只有用到list,dictionary,arraylist,array等幾個,其實c 的集合遠遠不止這幾個,一直認為dictionary是有序集合,哎,錯了好久,今...

C 中集合的排序

arraylist,list,dictionary等c 中常用到的集合都有乙個預設的sort方法,這個方法可以進行預設排序。但是如果這些集合中的元素是自定義的類,那麼這個預設的sort可能就不準確了。文章中使用到的命名空間是system,介面是 icomparable 和 icomparer。sor...