linq et ordre du tableau: explication détaillée des méthodes gardent l'ordre et quelles méthodes ne gardent pas
Lorsque vous utilisez des opérations LINQ sur les objets sur les tableaux triés, assurez-vous d'éviter les opérations qui cassent l'ordre du tableau d'origine. L'analyse suivante vous guidera:
Méthode pour garder l'ordre absolument:
]
- asenuableable:
]
- Casting:
- concat:
- Sélectionner:
- toArray:
- tolist:
Ces méthodes cartographient les éléments de source pour résulter des éléments tout en maintenant l'ordre.
Gardez généralement l'ordre:
]
- distinct: Filtrez des éléments en double.
- sauf: filtrez des éléments qui existent dans une autre séquence.
- intersecte: Filtrez des éléments qui existent ensemble dans plusieurs séquences.
- ofType: Filtrez des éléments basés sur le type.
- prend (nouveau dans .net 4.7.1): Ajoutez la valeur spécifiée avant l'élément.
- skip: sauter le nombre d'éléments spécifié.
- saut: sauter l'élément jusqu'à ce que la condition spécifiée soit remplie.
- Take: renvoie le nombre d'éléments spécifié.
- Take While: renvoie l'élément jusqu'à ce que la condition spécifiée soit remplie.
- Où: Filtre Éléments basés sur le prédicat.
- zip (nouveau dans .net 4): fusionnez les éléments correspondants en plusieurs séquences.
Méthodes pour détruire l'ordre:
- todictionary: convertir les éléments en dictionnaire, résultant en collections non ordonnées.
- tolookup: Convertir des éléments en tables de recherche, résultant en collections non ordonnées.
Méthode pour redéfinir explicitement l'ordre:
]
- orderby: trier les éléments dans l'ordre ascendant.
- OrderByDescending: trier les éléments dans l'ordre descendant.
- Reverse: Reverse:
Ordre de l'élément inversé. -
alorsby:
trier les éléments par un autre attribut, en gardant dans l'ordre original. -
thenByDescending:
trier les éléments dans l'ordre descendant d'un autre attribut, en gardant dans l'ordre original.
Méthode de redéfinition de l'ordre selon les règles:
]
-
groupby:
Éléments de groupement clés pour maintenir l'ordre des éléments dans chaque groupe. -
groupjoin:
maintient l'ordre des sources et des éléments externes de chaque groupe en fonction des connexions clés. -
join:
Connectez des éléments basés sur les clés pour maintenir l'ordre des éléments internes et externes. -
selectmany:
génère une série de séquences qui combinent des éléments dans chaque séquence dans un ordre imprévisible. -
Union:
fusionne plusieurs séquences et générer des éléments dans l'ordre de la séquence fournie.
En comprenant ces nuances, vous pouvez conserver l'ordre requis du tableau tout en effectuant des opérations LINQ, assurant son intégrité pour un traitement ou un affichage ultérieur.