Câu trả lời:
Có lẽ:
Enumerable.Empty<T>().AsQueryable();
Union
các truy vấn được chia thành nhiều truy vấn thay vì một truy vấn.
Thử return new T[0].AsQueryable();
Nói rằng bạn có một cuộc IQueryable<T>
gọi result
:
return result.Take(0);
Tôi sẽ khuyên chống lại câu trả lời của alejandrobog vì điều này vẫn sẽ sử dụng bộ nhớ để tạo ra một mảng trống.
Array.Empty<T>().AsQueryable();
hoặc là
Enumerable.Empty<T>().AsQueryable();
được ưa thích. Array.Empty sẽ phân bổ một mảng được gõ tĩnh để chỉ một mảng trống T được tạo và được chia sẻ giữa tất cả các truy vấn rỗng.
Array.Empty<T>
chỉ khả dụng sau .NET Framework 4.6. Đối với các phiên bản cũ hơn, bạn có thể sử dụngnew object[0].Cast<T>()