我有這樣的LINQ查詢:LINQ和大小寫
TempRecordList = new ArrayList(TempRecordList.Cast<string>().OrderBy(s => s.Substring(9, 30)).ToArray());
它的偉大工程,在某種程度上這是正確的,但是從我想要的東西有點不同的執行排序。在查詢的結果我看到這樣的事情:
棕櫚Bouter,彼得
帕爾默 - 約翰遜,肖恩
而我真正需要的是有排序像這樣的名字:
帕爾默 - 約翰遜,肖恩
棕櫚Bouter,彼得
基本上我想要的「 - 」字符被視爲是較低的塔ñ字符,以便包含它的名稱稍後以上升搜索顯示。
這是另一個例子。我得到:
迪亞斯,雷金納德
DiBlackley,安東
相反的:
DiBlackley,安東
迪亞斯,雷金納德
正如你所看到的,同樣,由於如何處理大寫字母'B',訂單被切換。
所以我的問題是,我需要改變我的LINQ查詢,使它返回我指定的順序的結果。任何反饋將大大appreaciated。
順便說一句,我嘗試使用s.Substring(9,30).ToLower()但這並沒有幫助。
謝謝!
聽起來好像它可能會工作,但我不確定我能寫一個能夠自己執行這些比較的類。 – GonzoKnight 2011-03-16 17:04:30
@mgronber - 非常感謝!我會嘗試這個代碼並返回結果。 – GonzoKnight 2011-03-16 17:36:20
我似乎有一個問題,以下行:[b]內部密封類NameComparer:IComparer [b]。我得到:錯誤1非泛型類型'System.Collections.IComparer'不能與類型參數一起使用。我可能知道如何解決它。我會嘗試別的,並會回來。 –
GonzoKnight
2011-03-16 17:54:49