Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’implémentation et OrderBy.
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)OrderBy.
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) a changé, ce qui a entraîné une complexité accrue pour l’opération.
Description de la modification
Dans .NET Core 1.x - 3.x, l’appel ou l’appel OrderBy ou OrderByDescending l’utilisation First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) avec O(N)
complexité. Étant donné que seul le premier élément (ou par défaut) est requis, une seule énumération est requise pour la trouver. Toutefois, le prédicat fourni ou First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) est appelé exactement N
fois, où N
est la longueur de la séquence.
Dans .NET 5 et versions ultérieures, une modification a été apportée de telle sorte que l’appel OrderBy ou OrderByDescending suivi ou First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) fonctionne avec O(N log N)
une complexité au lieu de la O(N)
complexité. Toutefois, le prédicat fourni ou First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) peut être appelé moins de N
fois, ce qui est plus important pour les performances globales.
Remarque
Cette modification correspond à l’implémentation et à la complexité de l’opération dans .NET Framework.
Raison de la modification
L’avantage d’appeler le prédicat moins de fois l’emporte sur une complexité globale plus faible, de sorte que l’implémentation introduite dans .NET Core 1.0 a été rétablie. Pour plus d’informations, consultez ce problème dotnet/runtime.
Version introduite
5,0
Action recommandée
Aucune action n’est requise dans la partie du développeur.