Feedback

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

Veröffentlicht von am 5/22/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.
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 5/24/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 5/24/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!