SkillsTest.pl C# pytania i zadania rekrutacyjne Jaka jest różnica pomiędzy IEnumerable vs IQueryable

: 2017-10-25 | Nr 48 z 51

Pytanie

Jaka jest różnica pomiędzy IEnumerable vs IQueryable C#

Najważniejsza różnica jest taka, że IEnumerable korzysta z zasobów pamięci lokalnej aplikacji a IQueryable operuje na zasobach po stronie dostawcy a do aplikacji przekazuje przefiltrowane dane.

Dobrym przykładem jest odczyt danych z bazy danych.
Chcemy z bazy danych wyciągnąć top 5 rekordów według zadanego warunku z tabeli mającej 1 milion wierszy.

IEnumerable

W przypadku IEnumerable do aplikacji zostaną pobrane wszystkie wiersze (1 milion) a następnie nastąpi filtrowanie danych i zwrócenie top 5 wyników.

IQueryable

Korzystając z IQueryable dane zostaną przefiltrowane po stronie bazy danych i do aplikacji zwrócone zostanie top 5 wyników.

Podsumowując, IEnumerable najlepiej używać gdy operujemy na kolekcjach w pamięci lokalnej, natomiast IQueryable powinniśmy używać gdy operujemy na danych zewnętrznych (np. baza danych).

Polecamy

Na co możesz wydać swoje 15k?

Zabawki dla dwulatka