Wprowadzenie

Poprzednie dwa wpisy z serii możecie znaleźć klikając w poniższe linki:

W tej cześci skupimy się na porównaniu (z pozoru błachej) funkcjonalności jaką jest operacja sprawdzenia zawartości naszej listy. Wielu z nas przywykło do użycia List.Count() w celu sprawdzenia czy dana kolekcja jest pusta. Porównamy czasy wykonania List.Count, List.Count() oraz List.Any().

Porównanie

Nic nie sprawdza się lepiej niż własnoręcznie napisany kod:

static void Main(string[] args)
{
    Stopwatch stopwatch = new Stopwatch();

    List<string> list = new List<string>()
    {
        "Audi RS6",
        "Pagani Huayra",
        "Maserati Gran Tourismo",
        "Nissan GTR",
        "Lamborghini Huracan Performante"
    };

    stopwatch.Start();

    // List.Count - właściwość
    if (list.Count > 0)
        Console.WriteLine("List.Count: " + stopwatch.ElapsedTicks.ToString());

    // List.Count() - metoda
    if (list.Count() > 0)
        Console.WriteLine("List.Count(): " + stopwatch.ElapsedTicks.ToString());

    // List.Any() - metoda
    stopwatch.Restart();
    if (list.Any())
        Console.WriteLine("List.Any(): " + stopwatch.ElapsedTicks.ToString());

    Console.ReadKey();

}

Podsumowanie

Najlepszym podsumowaniem tego krótkiego wpisu jest poniższy zrzut ekranu: C#: Count vs Count() vs Any()

Jeżeli chcemy sprawdzić czy na naszej liście znajdują się jakieś elementy najlepiej posłużyć się właściwością List.Count.