知道Iqueryable的元素数量

Jon*_*han 4 c# linq iqueryable

我有这个Linq查询

public IQueryable listAll()
{   
    ModelQMDataContext db = new ModelQMDataContext(); 
    IQueryable lTax = from t
                      in db.tax
                      select new {Tax = t.tax1, Increase = t.increase};
    return  lTax;
}  
Run Code Online (Sandbox Code Playgroud)

我怎么知道lTax的元素数量?

谢谢.

bru*_*nde 6

你真的需要回来IQueryable吗?IQueryable从您的方法返回并不提供太多功能,因为您无法在没有反射的情况下访问匿名类型的成员.在这种情况下,我建议您在查询中创建一个具体类型,以便能够返回IQueryable<T>:

class TaxIncrease
{
    public int Tax { get; set; }
    public int Increase { get; set; }
}

public IQueryable<TaxIncrease> listAll() {
    ModelQMDataContext db = new ModelQMDataContext();
    return from t in db.tax
           select new TaxIncrease {Tax = t.tax1, Increase = t.increase};
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

listAll().Count();