Comment trier une Liste<List<string>> selon List<string> nombre de champs?
Comment puis-je trier List<List<string>> selon le nombre de champs?
La liste a obtenu structure comme
a|b|c|d|eeee|rere|ewew|
ewqewq|ewew|
ewew|ewewewewew|
En Sorte que j'aimerais le faire selon les chiffres de blockes (asc/desc)
MODIFIER
la <list<list<string>> is "items"
et je accéder à chaque liste par items[0] chacun de
ces éléments[xx] est une liste qui signifie que je les veux pour trier le tableau de
a|b|c|d|eeee|rere|ewew|
a|b|c|d|eeee|rere
a|b|c|d|eeee
InformationsquelleAutor Skuta | 2009-04-06
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas besoin de les trier "en place", vous pouvez utiliser LINQ pour vous donner un nouveau triées, liste.
Sinon, vous aurez besoin d'écrire votre propre Logiciel qui prend deux listes et renvoie la commande de par leur taille.
Ou, comme @Josh points, vous pouvez le faire avec une expression lambda.
De l'OMI, ce dernier fonctionne bien si la comparaison est relativement simple ou utilisé une fois, mais à la classe réelle est peut-être préférable que la comparaison devient de plus en plus complexe ou si vous avez besoin de le répéter à plusieurs endroits.
Évidemment, vous pouvez adapter ce pour s'adapter à votre scénario, mais ce devrait vous donner une idée générale de la façon de créer une liste triée par le nombre d'éléments à l'intérieur d'une chaîne de caractères dans une autre liste.
Vous pouvez trier en utilisant la méthode de tri, par la création de votre propre Compararer ou en lui donnant un délégué de type
Comparison<T>
.Voici un exemple montrant comment les comparer à l'aide d'une expression lambda.
Modifier
Une façon très simple d'inverser le tri est à multiplier par la négative -1
x
ety
sur un côté de la lambda flèche, comme dans(x, y) => y.Count.CompareTo(x.Count)
.Juste un ajustement mineur, de la vérification de la valeur null tout aussi
Lorsque vous avez null listes dans la liste de listes, vous voudrez peut-être faire leur priorité inférieure à vide listes, par l'interprétation de la valeur null.Count -1, ou PAS