亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用LINQ的字母數字排序

使用LINQ的字母數字排序

C#
米琪卡哇伊 2019-09-26 09:39:59
我有一個string[]其中每個元素都以某個數字結尾的值。string[] partNumbers = new string[] {      "ABC10", "ABC1","ABC2", "ABC11","ABC10", "AB1", "AB2", "Ab11" };我正在嘗試使用以下方式對上面的數組進行排序,LINQ但沒有得到預期的結果。var result = partNumbers.OrderBy(x => x);實際結果:AB1 Ab11 AB2 ABC1 ABC10 ABC10 ABC11 ABC2預期結果AB1 AB2 AB11 ..
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

可以在Dave Koelle的站點上找到可以“正常工作”的字母數字排序方法的正確實現。在C#版本在這里


查看完整回答
反對 回復 2019-09-26
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

如果要使用LINQ和自定義比較器(如Dave Koelle的自定義比較器)按特定屬性對對象列表進行排序,則應執行以下操作:

...items = items.OrderBy(x => x.property, new AlphanumComparator()).ToList();...

您還必須更改Dave的類以從其繼承,System.Collections.Generic.IComparer<object>而不是從其繼承,IComparer因此類簽名變為:

...public class AlphanumComparator : System.Collections.Generic.IComparer<object>{

    ...

就我個人而言,我更喜歡James McCormack的實現,因為它實現了IDisposable,盡管我的基準測試表明它稍慢一些。


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 809 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號