Comment puis-je Trier IList<Class>?
Il n'y a pas Sort()
fonction pour IList
. Peut someoene m'aider?
Je veux ma propre IList.
Suppose que c'est mon IList:
public class MyObject()
{
public int number { get; set; }
public string marker { get; set; }
}
Comment puis-je trier myobj en utilisant le marqueur de chaîne?
public void SortObject()
{
IList<MyObject> myobj = new List<MyObject>();
}
Est
myobj
toujours un List
? Si oui, vous pouvez le convertir en un List
et d'exécuter ses Sort
fonction.OriginalL'auteur Rye | 2010-10-02
Vous devez vous connecter pour publier un commentaire.
Utilisation
OrderBy
Exemple
Pour un insensible à la casse, vous devez utiliser un IComparer
+1 pour l'examen de la sensibilité à la casse, mais le Cadre a déjà de la casse de la chaîne de comparateurs, pas besoin d'en créer un. Essayez StringComparer.OrdinalIgnoreCase au lieu de votre CaseInsensitiveComparer.
OriginalL'auteur
J'irais contre à l'aide de
OrderBy
avec une liste parce que c'est une extension LINQ méthode, donc:ToList()
, il itère sur elle et remplit une autre nouvelle liste avec les éléments.En substance: il crée et remplit 2 nouvelles listes et 2 enumerables en plus du tri réelle.
En comparaison,
List.Sort()
sortes en place et de créer rien de plus, c'est plus efficace.Ma recommandation serait:
List.Sort()
ouArray.Sort(array)
Array.Sort(array)
et de le retourner.OriginalL'auteur
OriginalL'auteur
OrderBy
certainement fait le travail, mais personnellement, je préfère la syntaxe deList.Sort
parce que vous pouvez nourrir unComparison<T>
délégué au lieu d'avoir à écrire une classe qui implémenteIComparer<T>
. Nous pouvons atteindre cet objectif avec une méthode d'extension, et si c'est quelque chose qui vous intéresse, découvrez SortExtensions:http://blog.velir.com/index.php/2011/02/17/ilistt-sorting-a-better-way/
OriginalL'auteur
Pour l'explication pourquoi ne pas utiliser OrderBy ou similaire vérifier La réponse de Christophe.
Voici une tentative de faire rapidement le Tri:
OriginalL'auteur