Gdy metoda zwraca IEnumerable<T>
i nie mam nic do zwrócenia, możemy użyć Enumerable.Empty<T>()
.
Czy istnieje odpowiednik powyższego dla zwracanej metody IQueryable<T>
Odpowiedzi:
Próbować return new T[0].AsQueryable();
Powiedz, że masz IQueryable<T>
wezwanie result
:
return result.Take(0);
Odradzałbym odpowiedź alejandroboga, ponieważ nadal będzie ona wykorzystywać pamięć do tworzenia pustej tablicy.
Array.Empty<T>().AsQueryable();
lub
Enumerable.Empty<T>().AsQueryable();
są preferowane. Array.Empty przydzieli statyczną tablicę o typie statycznym, więc utworzona zostanie tylko jedna pusta tablica T, która jest współdzielona przez wszystkie Empty queryables.
Array.Empty<T>
jest dostępny tylko po .NET Framework 4.6. W przypadku wcześniejszych wersji możesz użyćnew object[0].Cast<T>()