如何使用OrderBy
函數對字符串數組進行排序?我看到我需要實現一些接口...對C#中的字符串數組進行排序
3
A
回答
6
您可以使用排序數組。
var sortedstrings = myStringArray.OrderBy(s => s);
這將返回Ienumerable
的實例。如果您需要將其保留爲數組,請改用此代碼。
myStringArray = myStringArray.OrderBy(s => s).ToArray();
我不知道你指的是當你說你要實現一些接口是什麼,但你沒有使用IEnumerable.OrderBy
時,要做到這一點。只需以lambda表達式的形式傳遞Func<TSource, TKey>
即可。
2
OrderBy
將不到位現有數組排序。如果您需要這樣做,請使用Array.Sort
。
OrderBy
總是返回新序列 - 這當然也可以轉換成一個陣列和存儲參考原始變量,按島之風的答案。
2
要對進行排序現有陣列請致電Array.Sort(theArray)
。
再在接口上您的評論:您不需要在這裏添加任何的接口,因爲string
是很好的支持;但對於定製類型(你自己),你可以實現IComparable
/IComparable<T>
啓用排序。您可以也做一個IComparer
/IComparer<T>
一樣傳球,如果你希望(或需要),提供了排序是不同的類型本身的代碼。
0
LINQ的具有兩個(語法)的方式來排序字符串數組。
1:
string[] sortedStrings = unsortedStrings.OrderBy(s => s).ToArray();
此語法使用Lambda Expressions,如果你不知道什麼s => s
手段。
2:
sortedStrings = (from strings in unsortedStrings
orderby strings
select strings).ToArray();
這個例子看起來有點像一個SQL語句,可能是更容易閱讀,如果你是新的LINQ。
ToArray()
在這種情況下將IOrderedEnumerable<string>
轉換爲string[]
。
相關問題
- 1. 對字符串數組進行排序
- 2. 對字符串中的字符進行排序的C程序
- 3. C - 按特定列對3d字符串數組進行排序
- 4. 在VB中對字符串數組進行排序的問題
- 5. 在Java中對字符串數組進行排序
- 6. 在java中對字符串數組進行排序
- 7. Postgresql函數對字符串中的字符進行排序
- 8. 在字符串之前對數組數值進行排序?
- 9. 對4個數組進行排序的文件(字符串)
- 10. 使用stdlib的qsort()對字符串數組進行排序
- 11. 如何使用qsort在C++中對字符串數組進行排序?
- 12. AngularJS - 對字符串進行排序 - 重複其中的數字
- 13. 在對數組進行排序時忽略某些字符串
- 14. 如何對UTF-8字符串數組進行排序?
- 15. 如何對字符串數組進行冒泡排序?
- 16. 嘗試對字符串數組進行排序
- 17. 對字符串數組進行排序並忽略大小寫
- 18. 按字符串長度對三維數組進行排序PHP
- 19. 如何按日期對$ _POST數組進行排序字符串
- 20. 基於匹配字符串對字符串數組進行排序
- 21. 如何對字符串中的字符進行排序?
- 22. 如何對字符串數組中的字符串進行排序,然後對該數組進行排序得出O(a * s(loga + logs))?
- 23. 如何在Objective-C中對字符串進行排序?
- 24. 在Ruby中對字符串和數字進行排序
- 25. 在文本字符串中對數字進行排序
- 26. 對具有特殊字符的字符串數組進行排序
- 27. 按特定字符串順序對對象的Javascript數組進行排序?
- 28. 通過數組中的字符串進行排序?
- 29. 使用快速排序對C中的字符串進行排序
- 30. 在objective-c中按字母順序對數組進行排序
好的,但什麼是「s」? – aharon 2011-01-14 07:53:54
@aharon:這是lambda表達式的參數。如果你要學習LINQ,你需要了解各種功能,從C#3 – 2011-01-14 07:54:49