Feedback

C# - Linq: Performanterer Ersatz für .Count() > 0

Veröffentlicht von am 22.05.2015
(0 Bewertungen)
Wenn man mit IEnumerables hantiert, hat man nicht mehr das praktikable .Count Property einer IList und nicht das .Length einers Arrays.

Koopakillers .HasCount() Funktion von hier

http://dotnet-snippets.de/snippet/linq-erweiterung-hascount/3818

hat mir die Idee gegeben, wie man .Count() > 0 performanter machen kann.

Der folgende Code benutzt Koopakillers .HasCount() Funktion, ohne sie hier zu kopieren.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

public static bool HasItems<TSource>(this IEnumerable<TSource> source)
{
  var hasItems = source.HasCount(1);

  return hasItems;
}
Abgelegt unter linq, count.

2 Kommentare zum Snippet

Xilefius schrieb am 24.05.2015:
Während es nett von dir ist, deine Erweiterungen mit uns zu teilen, solltest du dir doch nochmal den LINQ namespace weiter ansehen.

Man kann statt deiner Methode auch einfach die Standard Methode "Any" benutzen, die genau dieses macht (Liste durchgehen, bis ein Element (das auf den selector passt) gefunden wurde und dann abbrechen, ohne den Rest anzusehen)

var hasItems = someList.Any();
DJ Doena schrieb am 24.05.2015:
Du hast recht.

Ich kannte zwar die Any-Methode, habe sie bisher aber nur als Check-Methode (mit der predicate-Überladung verwendet).

Manchmal ist den Linq-Methodennamen nicht direkt anzusehen, was genau sie eigentlich treiben.
 

Logge dich ein, um hier zu kommentieren!