LINQ – Kolejne usprawnienia

Udostępnij

Wprowadzenie

LINQ również jest aktywnie rozwijane. Oprócz różnych usprawnień, zwiększających wydajność poszczególnych metod, pojawiają się także nowe rozszerzenia, które ułatwiają codzienną pracę. Chciałbym podzielić się z wami rozszerzeniami, które zostały dodane w ostatnich kilku wersjach .NET.

Przegląd

Wszystkie przykłady będziemy uruchamiać na podstawie poniższej kolekcji

Person[] items =
[
    new("Jakub", "Wierzbanowski", new DateTime(1967, 12, 1)),
    new("Jakub", "Kowalski", new DateTime(1985, 12, 12)),
    new("Marian", "Nowak", new DateTime(1964, 9, 5)),
];

Chunk – metoda służąca do dzielenia kolekcji na mniejsze części. Przyjmuje jako parametr rozmiar „chunków”.

var chunks = items.Chunk(2); // zwróci dwie kolekcja, 2 elementy oraz 1 element

MaxBy oraz MinBy – służą do wyciągania elementu o największej lub najmniejszej wartości na podstawie wskazanego kryterium.

var result = items.MaxBy(x => x.DateOfBirth.Year); // element gdzie rok jest największy
var result = items.MinBy(x => x.DateOfBirth.Month); // element gdzie miesiąc jest najmniejszy

CountBy – pozwala na zgrupowanie wyników i ich podliczenie na podstawie wskazanej właściwości.

var result = items.CountBy(x => x.FirstName); // zwraca typ IEnumerable<KeyValuePair<>> { "Jakub", 2 }, { "Marian", 1 }

Czytaj również  Dependency Injection + dotnet core
Scroll to Top