我如何得到
的数量var resHT = from row in ds.Tables[1].AsEnumerable()
where row.Field<int>("a") == Convert.ToInt32(a.Value) && row.Field<int>("b") == 1
select new {
TypeDescription = row.Field<string>("c"),
NameOrSpecs = row.Field<string>("d"),
AvailabilityBy = row.Field<DateTime?>("e")
};
我如何得到resHT的数量。我对linq来说是个新手
答案 0 :(得分:2)
var count = resHT.ToList().Count();
通过使用Select
命令执行new
,您实际上是在创建匿名类型的IQueryable
。我不知道没有ToList()
的代码错误的确切原因,但添加ToList()
会将您的返回数据转换为匿名类型的List
。 List
类上有一个count属性,这就是为什么我让你做ToList
。
我知道如果您执行LINQ-to-SQL,ToList
会强制查询实际执行,然后会删除匹配的所有数据并创建您的匿名类型,然后可以对其进行计数。如果您正在使用内存中的DataTable
,我不确定为什么需要这样做。我没有对DataTables做太多的LINQ,所以我还没有玩过很多。