130 当一个方法返回IEnumerable<T>并且我没有任何要返回的东西时,我们可以使用Enumerable.Empty<T>()。 返回的方法是否与上述等效 IQueryable<T> c# return iqueryable — 努曼 source
206 也许: Enumerable.Empty<T>().AsQueryable(); — 阳光明媚 source 2 我知道,当前这是唯一简单,直接且肮脏的;-)解决方案 — Numan 2010年 7 不幸的是,这并没有创建一个实际的空IQueryable,这意味着它会导致例如Union查询分解为多个查询而不是一个。 — NetMage
8 尝试 return new T[0].AsQueryable(); — 阿列扬德博格 source @Nauman-您实际上创建了一个[空] T数组-实际上没有创建T的新对象。 — zastrowm 2014年
1 我建议反对alejandrobog的回答,因为这仍将使用内存来创建一个空数组。 Array.Empty<T>().AsQueryable(); 要么 Enumerable.Empty<T>().AsQueryable(); 是首选。Array.Empty将分配一个静态类型数组,因此仅创建一个T的空数组,并在所有Empty可查询对象之间共享。 — 乔希 source Array.Empty<T>仅在.NET Framework 4.6之后可用。对于早期版本,您可以使用new object[0].Cast<T>() — TZU