如何使用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. 對字符串數組進行排序
- 3. 如何對C中數組中的字符串進行排序?
- 4. 在C++中對字符串數組進行排序
- 5. 按字符串中的數字對數組進行排序?
- 6. 對字符串中的字符進行排序的C程序
- 7. 對字符串,組數據中的行進行排序
- 8. C - 按特定列對3d字符串數組進行排序
- 9. C#對字符串數組進行排序
- 10. 在VB中對字符串數組進行排序的問題
- 11. 對VTL中的字符串數組進行排序
- 12. 對字符數組進行排序
- 13. 通過包含數字對字符串數組進行排序?
- 14. 如何在java中對字符串數組進行排序?
- 15. 如何在GUI中對字符串數組進行排序?
- 16. 在BlackBerry中對字符串數組進行排序
- 17. 在Java中對字符串數組進行排序
- 18. 在java中對字符串數組進行排序
- 19. Postgresql函數對字符串中的字符進行排序
- 20. 在LINQ C中對字符串列表進行整數排序#
- 21. 在字符串之前對數組數值進行排序?
- 22. 使用stdlib的qsort()對字符串數組進行排序
- 23. 對4個數組進行排序的文件(字符串)
- 24. 在字符串C編程中對字出現進行排序
- 25. 如何使用qsort在C++中對字符串數組進行排序?
- 26. 對Java中包含數字的字符串進行排序
- 27. AngularJS - 對字符串進行排序 - 重複其中的數字
- 28. 對字符串數組進行排序並忽略大小寫
- 29. 對字符串數組進行不區分大小寫排序
- 30. 在對數組進行排序時忽略某些字符串
好的,但什麼是「s」? – aharon 2011-01-14 07:53:54
@aharon:這是lambda表達式的參數。如果你要學習LINQ,你需要了解各種功能,從C#3 – 2011-01-14 07:54:49