簡體   English   中英

按字母順序排列列表,不包括字母

[英]Sort a list alphabetically excluding a letter

我有一個對象列表,每個對象都有一個名稱。 我正在嘗試按字母順序對列表進行排序(這很容易實現),但后來我希望以字母D開頭的任何項目按照按字母順序排序的列表進行排序。 所以給出的項目:

(Apple, Door, Banana, Doorknob, Gorilla, Hammer)  

我想把它歸類為:

(Apple, Banana, Gorilla, Hammer, Door, Doorknob) 

我確信我可以使用強力來處理這個問題,但是我希望有一種方法可以使用帶有OrderBy().ThenBy() linq來實現它OrderBy().ThenBy()然后看看OrderBy().ThenBy()但是它看起來更像是在2個不同的屬性上進行排序)。 我試圖用linq做什么,或者我只是必須用老式的方式做?

您可以使用任何返回可排序值的表達式作為排序順序; 它不一定是財產。 要將名稱以“D”開頭的所有對象放在列表的末尾,只需使用:

.OrderBy(o => o.Name.StartsWith("D") ? 1 : 0)
.ThenBy(o => o.Name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM