Enumerable.Empty <T> () setara dengan IQueryable


130

Ketika suatu metode kembali IEnumerable<T>dan saya tidak memiliki apa pun untuk dikembalikan, kita dapat menggunakan Enumerable.Empty<T>().

Apakah ada yang setara dengan di atas untuk metode pengembalian IQueryable<T>

Jawaban:


206

Mungkin:

Enumerable.Empty<T>().AsQueryable();

2
Saya tahu, saat ini itulah satu-satunya solusi sederhana, langsung & kotor ;-)
Numan

7
Sayangnya itu tidak membuat IQueryable kosong yang sebenarnya, yang berarti itu menyebabkan mis. UnionKueri dipecah menjadi beberapa kueri alih-alih satu.
NetMage

34

Enumerable.Empty<T>().AsQueryable(); harus melakukannya.


8

Mencoba return new T[0].AsQueryable();


@Nauman - Anda benar-benar membuat array T [kosong] - tidak ada objek baru T yang benar-benar dibuat.
zastrowm

4

Katakanlah Anda memiliki IQueryable<T>yang disebut result:

return result.Take(0);

1

Saya akan menyarankan terhadap jawaban alejandrobog karena ini masih akan menggunakan memori untuk membuat array kosong.

Array.Empty<T>().AsQueryable();

atau

Enumerable.Empty<T>().AsQueryable();

lebih disukai. Array.Empty akan mengalokasikan array yang diketik secara statis sehingga hanya satu array kosong dari T yang dibuat dan dibagi di antara semua queryable yang kosong.


Array.Empty<T>hanya tersedia setelah .NET Framework 4.6. Untuk versi sebelumnya, Anda dapat menggunakannew object[0].Cast<T>()
TZU
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.