wtorek, 24 kwietnia 2012

Leniwe LINQ

Jak już wspomniałem w jednym z moich wcześniejszych postów, sortowanie danych możliwe jest za pomocą implementowania specjalnych interfejsów (IComparer, IComparable) i zapytań LINQ.

LINQ jest... leniwe. Jednak wbrew pozorom może być to pożądana cecha.
Znaczy to tyle, że nawet jeśli utworzymy zapytanie, to taka konstrukcja:
var sort = from p in people2
                       orderby p.Age
                       select p;
nie wykona tego zapytania i nie przypisze nam wyniku do zmiennej "sort".
Trzeba na to uważać zwłaszcza wtedy jeśli zależy nam na tym żeby zapytanie wykonało się natychmiast.

Jak zatem wymusić wykonanie takiego zapytania?

Wystarczy wykonać coś na naszej zmiennej "sort".
Dopiero kiedy  będziemy potrzebowali odwołać się do wyników zapytania, leniwe LINQ będzie zmuszone do pracy!

Brak komentarzy:

Prześlij komentarz