LINQ et ordre des tableaux : explication détaillée des méthodes qui maintiennent l'ordre et des méthodes qui ne le font pas
Lorsque vous utilisez des opérations LINQ to Objects sur des tableaux triés, veillez à éviter les opérations qui détruisent l'ordre du tableau d'origine. L'analyse suivante vous guidera :
Une manière absolue de maintenir l'ordre :
- AsEnumerable :
- Distribution :
- Concat :
- Sélectionnez :
- VersArray :
- ÀListe :
Ces méthodes mappent les éléments source aux éléments résultat tout en maintenant l'ordre.
Manière habituelle de maintenir l'ordre :
-
Distinct : Filtrez les éléments en double.
-
Sauf : Filtre les éléments qui existent dans une autre séquence.
-
Intersect : Filtre les éléments communs dans plusieurs séquences.
-
OfType : Filtre les éléments en fonction du type.
-
Prepend (nouveau dans .NET 4.7.1) : Ajoute la valeur spécifiée avant l'élément.
-
Sauter : Ignorer le nombre d'éléments spécifié.
-
SkipWhile : Ignore les éléments jusqu'à ce que la condition spécifiée soit remplie.
-
Take : Renvoie le nombre d'éléments spécifié.
-
TakeWhile : Renvoie les éléments jusqu'à ce que la condition spécifiée soit remplie.
-
Où : Filtre les éléments en fonction d'un prédicat.
-
Zip (nouveau dans .NET 4) : Fusionnez les éléments correspondants dans plusieurs séquences.
Comment détruire la commande :
-
ToDictionary : Convertit les éléments en dictionnaire, ce qui donne une collection non ordonnée.
-
ToLookup : Convertit les éléments en une table de recherche, ce qui donne une collection non ordonnée.
Façons de redéfinir explicitement l'ordre :
-
OrderBy : Trie les éléments par ordre croissant.
-
OrderByDescending : Trie les éléments par ordre décroissant.
-
Inverser : Inversez l'ordre des éléments.
-
ThenBy : Trie les éléments selon un autre attribut, en conservant l'ordre d'origine.
-
ThenByDescending : Trie les éléments par ordre décroissant selon un autre attribut, en conservant l'ordre d'origine.
Comment redéfinir l'ordre selon des règles :
- groupby: Appuyez sur l'élément de groupe pour maintenir l'ordre des éléments dans chaque groupe.
groupjoin: - En fonction de l'élément de connexion clé, maintenez l'ordre des sources et des éléments externes de chaque groupe.
Join:
L'ordre de connexion des éléments en fonction de la connexion clé est maintenu. -
selectmany: générer une série de séquences pour combiner des éléments dans chaque séquence dans un ordre imprévisible.
- Union: Fusionner plusieurs séquences, générer des éléments par ordre de séquences fournies.
- En comprenant ces différences subtiles, vous pouvez maintenir l'ordre souhaité du tableau lors de l'exécution de l'opération LINQ pour assurer son intégrité pour un traitement ou un affichage supplémentaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!