IQueryable için Enumerable.Empty <T> () eşdeğeri


130

Bir yöntem geri döndüğünde IEnumerable<T>ve benim geri dönecek hiçbir şeyim olmadığında kullanabiliriz Enumerable.Empty<T>().

Geri dönen bir yöntem için yukarıdakine bir eşdeğer var mı IQueryable<T>

Yanıtlar:


206

Olabilir:

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

2
Biliyorum, şu anda tek basit, doğrudan ve kirli ;-) çözüm
Numan

7
Maalesef bu gerçek bir boş IQueryable yaratmaz, bu da örneğin Unionsorguların bir yerine birden çok sorguya bölünmesine neden olur .
NetMage


8

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


@Nauman - aslında [boş] bir T dizisi yaratırsınız - aslında yeni bir T nesnesi yaratılmaz.
zastrowm


1

Alejandrobog'un cevabına karşı tavsiye ederim çünkü bu hala boş bir dizi oluşturmak için bellek kullanacaktır.

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

veya

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

tercih edilmektedir. Array.Empty, statik tipte bir dizi ayırır, böylece yalnızca bir boş T dizisi oluşturulur ve bu, tüm Boş sorgulanabilir öğeler arasında paylaşılır.


Array.Empty<T>yalnızca .NET Framework 4.6'dan sonra kullanılabilir. Önceki sürümler için şunları kullanabilirsiniznew object[0].Cast<T>()
TZU
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.