Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De implementatie van OrderBy.First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) en OrderBy.FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) is gewijzigd, wat resulteert in een grotere complexiteit voor de bewerking.
Beschrijving wijzigen
In .NET Core 1.x - 3.x, het aanroepen van OrderBy of OrderByDescending gevolgd door First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) of FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) werkt met O(N) complexiteit. Omdat alleen het eerste (of standaard) element is vereist, is er slechts één opsomming vereist om het te vinden. Het predicaat dat aan First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) of FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) wordt geleverd, wordt echter exact N keer aangeroepen, waarbij N de lengte van de reeks is.
In .NET 5 en latere versies is een wijziging aangebracht, zodat het aanroepen van of OrderBy gevolgd door OrderByDescending of First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) werkt met FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) complexiteit in plaats van O(N log N) complexiteit. Het predicaat dat wordt geleverd aan First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) of FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) kan echter minder vaak dan N keer worden aangeroepen, wat belangrijk is voor de algehele prestatie.
Opmerking
Deze wijziging komt overeen met de implementatie en complexiteit van de bewerking in .NET Framework.
Reden voor wijziging
Het voordeel van het aanroepen van het predicaat minder keer weegt op tegen een lagere algehele complexiteit, dus de implementatie die is geïntroduceerd in .NET Core 1.0 is teruggedraaid. Zie dit probleem met dotnet/runtime voor meer informatie.
Geïntroduceerde versie
5,0
Aanbevolen actie
Er is geen actie van de ontwikkelaar vereist.