Как я могу отсортировать массив строк с помощью функции OrderBy
? Я видел, что мне нужно реализовать некоторые интерфейсы ...Сортировка массива строк в C#
ответ
Вы можете отсортировать массив с помощью.
var sortedstrings = myStringArray.OrderBy(s => s);
Это вернет экземпляр Ienumerable
. Если вам нужно сохранить его как массив, используйте этот код.
myStringArray = myStringArray.OrderBy(s => s).ToArray();
Я не уверен, что вы имеете в виду, когда вы сказали, что вы должны реализовать несколько интерфейсов, но вы не должны делать это при использовании IEnumerable.OrderBy
. Просто передайте Func<TSource, TKey>
в форме лямбда-выражения.
OrderBy
не будет сортировать существующий массив на месте. Если вам нужно это сделать, используйте Array.Sort
.
OrderBy
всегда возвращает новую последовательность - что, конечно, вы можете преобразовать в массив и сохранить ссылку в исходной переменной, как в ответ Ойвид в.
Сортировка внутри существующий массив, звонок Array.Sort(theArray)
.
Повторите свой комментарий по интерфейсам: здесь вам не нужно добавлять какие-либо интерфейсы, так как string
хорошо поддерживается; но для пользовательских типов (самостоятельно) вы можете реализовать IComparable
/IComparable<T>
, чтобы включить сортировку. Вы можете также сделать то же самое в IComparer
/IComparer<T>
, если вы хотите (или нуждаетесь) код, который обеспечивает, чтобы заказ был отдельным для самого типа.
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[]
в этом случае.
Какой тип является несортированным? Я пробовал со строкой [], не работал ...? – BerggreenDK
string [] test = new [] {"3", "1", "c"}; должны работать без проблем. Вам нужно включить пространство имен System.Linq – hwcverwe
- 1. Сортировка массива строк в C++
- 2. Сортировка массива строк в c
- 3. Сортировка массива строк в C
- 4. Сортировка массива строк в swift
- 5. Сортировка массива строк по длине (слов) C++
- 6. Сортировка массива строк с номерами C++
- 7. Сортировка массива строк c по алфавиту
- 8. Сортировка массива строк
- 9. Сортировка массива строк
- 10. Сортировка массива строк
- 11. Сортировка массива строк в Javascript
- 12. Сортировка строк в C#
- 13. Сортировка строк в C
- 14. Сортировка массива в C++
- 15. Сортировка массива в C
- 16. Сортировка массива в C
- 17. Сортировка массива в C
- 18. Сортировка двухмерного массива в C#
- 19. Строка массива Сортировка C
- 20. Java: Сортировка массива числовых строк
- 21. IOS Сортировка массива конкретных строк
- 22. Сортировка массива строк двумя фильтрами
- 23. Сортировка массива строк по длине
- 24. Сортировка массива чисел и строк
- 25. Сортировка массива строк по «уникальности»
- 26. Сортировка массива путей (строк) [Bash]
- 27. Сортировка массива строк (уникальные строки)
- 28. Сортировка массива строк по значению в строке
- 29. Сортировка массива строк и массива int
- 30. сортировка массива строк и массива int
ОК, но что это такое? – aharon
@aharon: Это параметр выражения лямбда. Если вы собираетесь изучить LINQ, вам нужно узнать о различных функциях с C# 3. –
Nit: вы не передаете 'Predicate' в OrderBy - вы передаете 'Func '. –