Comment trier un tableau de chaînes à l'aide de la fonction OrderBy
? J'ai vu que j'ai besoin d'implémenter certaines interfaces ...Trier un tableau de chaînes en C#
Répondre
Vous pouvez trier la matrice en utilisant.
var sortedstrings = myStringArray.OrderBy(s => s);
Ceci renverra une instance de Ienumerable
. Si vous devez le conserver en tant que tableau, utilisez plutôt ce code.
myStringArray = myStringArray.OrderBy(s => s).ToArray();
Je ne suis pas sûr de ce que vous faites référence lorsque vous avez dit que vous devez mettre en œuvre certaines interfaces, mais vous ne devez pas le faire lors de l'utilisation du IEnumerable.OrderBy
. Il suffit de passer un Func<TSource, TKey>
sous la forme d'une expression lambda.
OrderBy
ne triera pas le tableau existant en place. Si vous avez besoin de faire cela, utilisez Array.Sort
.
OrderBy
retourne toujours une nouvelle séquence - qui bien sûr vous pouvez convertir en un tableau et stocker une référence dans la variable d'origine, selon la réponse de Øyvind.
Pour trier à l'intérieur de un tableau existant, appelez Array.Sort(theArray)
. Reportez-vous à votre commentaire sur les interfaces: vous n'avez pas besoin d'ajouter d'interfaces ici, car string
est bien supporté; mais pour personnalisé types (de votre choix), vous pouvez implémenter IComparable
/IComparable<T>
pour activer le tri. Vous pouvez aussi faire la même chose en passant dans un IComparer
/IComparer<T>
, si vous voulez (ou avez besoin) du code qui donne l'ordre d'être séparé du type lui-même.
Linq dispose de deux méthodes (de syntaxe) pour trier un tableau de chaînes.
1:
string[] sortedStrings = unsortedStrings.OrderBy(s => s).ToArray();
Cette syntaxe utilise un Lambda Expressions si vous ne savez pas ce que s => s
moyens.
2:
sortedStrings = (from strings in unsortedStrings
orderby strings
select strings).ToArray();
Cet exemple ressemble un peu à une instruction SQL et est probablement plus facile à lire si vous êtes nouveau avec LINQ.
ToArray()
convertit le IOrderedEnumerable<string>
en tant que string[]
dans ce cas.
de quel type est le non trié? J'ai essayé avec string [], ne fonctionne pas ...? – BerggreenDK
string [] test = new [] {"3", "1", "c"}; devrait fonctionner sans problèmes. Vous devez inclure l'espace de noms System.Linq – hwcverwe
- 1. Objectif C - Trier un tableau de chaînes
- 2. C# trier un tableau de chaînes
- 3. trier un tableau de chaînes one off
- 4. Comment trier un tableau de chaînes?
- 5. comment trier tableau de chaînes
- 6. Tableau de chaînes de tri en C#
- 7. trier un tableau de flottants en C++
- 8. Comment trier un tableau 2D en C#
- 9. trier un tableau d'une classe en C#
- 10. Tableau de chaînes en C
- 11. Essayer de trier tableau de chaînes
- 12. Comment trier correctement les chaînes en C?
- 13. Trier un tableau de char dans C
- 14. Trier un itérateur de chaînes
- 15. Trier un tableau de chaînes avec des caractères spéciaux
- 16. Trier un tableau de chaînes avec des caractères spéciaux
- 17. Comment puis-je trier ce tableau de hachages en utilisant un tableau secondaire de chaînes?
- 18. comment trier un tableau en C dans un cycle?
- 19. C# division regex en tableau de chaînes
- 20. Effacer un tableau de chaînes C++
- 21. colonnes du tableau Trier multidimensionnels en C
- 22. JSON tableau de chaînes en C#
- 23. C# Convertir un tableau de chaînes en ensemble de données
- 24. Comment déclarer un tableau C de chaînes
- 25. Visual C++ déclarant un tableau de chaînes
- 26. C# - recherche un tableau de chaînes utilisant des chaînes d'un autre tableau de chaînes
- 27. C - Tableau de chaînes à un tableau de char
- 28. Trier un vecteur de chaînes en utilisant des modèles
- 29. Trier un tableau basé sur un autre tableau en PHP?
- 30. Stocke plusieurs chaînes dans un tableau de caractères en C
ok, mais qu'est-ce que "s"? – aharon
@aharon: C'est le paramètre de l'expression lambda. Si vous allez apprendre LINQ, vous aurez besoin de connaître les différentes fonctionnalités de C# 3. –
Nit: vous ne passez pas un 'Predicate' dans OrderBy - vous passez un 'Func '. –