知道Iqueryable的元素数量

时间:2009-10-14 09:57:04

标签: 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;
}  

我如何知道lTax的元素数量?

感谢。

3 个答案:

答案 0 :(得分: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};
}

然后你可以这样做:

listAll().Count();

答案 1 :(得分:2)

lTax.Count()应该这样做......

答案 2 :(得分:0)

首先将税收声明为List,因此可以.Count()

然后,如果您想要lTax.AsQueryable()

,可以将其更改为可查询