我想知道什么是IQueryable,列表,IEnumerator和什么时候我应该使用每一个不同? 例如,当使用LINQ到SQL我会做这样的事情 public List<User> GetUsers() { return db.User.where(/* some query here */).ToList(); } 现在我想知道是否应该使用IQueryable,但我不确定在列表中使用它的优点。
AsQueryable()的目的只是为了让你可以将IEnumerable传递给可能期望IQueryable方法,还是有一个有用的理由将IEnumerable表示为IQueryable ? 例如,它应该是这样的情况: IEnumerable<Order> orders = orderRepo.GetAll(); // I don't want to create another method that works on IEnumerable, // so I convert it here. CountOrders(orders.AsQueryable()); public static int CountOrders(IQueryable<Order> ordersQuery) { return ordersQuery.Count(); } 还是它实际上使它做了不同的事情: IEnumerable<Order> orders = orderRepo.GetAll(); IQueryable<Order> ordersQuery = orders.AsQueryable(); IEnumerable<Order> filteredOrders = orders.Where(o => o.CustomerId == 3); IQueryable<Order> filteredOrdersQuery = […]
我对这个区别感到困惑。 对.Net来说相当新,我知道我可以使用Linq扩展来查询IEnumerables 。 那么这个IQueryable是什么?它有什么不同? 另请参见IQueryable [T]和IEnumerable [T]之间的区别是什么? 与这个问题重叠。
IQueryable<T>和IEnumerable<T>什么区别? 另请参见与此问题重叠的IQueryable和IEnumerable之间有什么区别 。
返回IQueryable<T>与IEnumerable<T>什么区别? IQueryable<Customer> custs = from c in db.Customers where c.City == "<City>" select c; IEnumerable<Customer> custs = from c in db.Customers where c.City == "<City>" select c; 这两个都是延期执行,什么时候应该比另一个更受欢迎?