如何从LINQ查询中输出简单计数(int)?
问题描述:
我想要获取数据表中列的不同数量。如何从LINQ查询中输出简单计数(int)?
我到目前为止
public int DocumentsProcessed()
{
var query = from data in this._data
let docID = data.Field<string>("Document ID")
select new
{
docID
};
var query2 = from d in query
select d.docID.Distinct().Count();
var result = query2;
return result;
}
以下其中this._data是
private IEnumerable<DataRow> _data;
但结果是一个IEnumerable。我正在寻找一个单一的整数作为答案。
编辑:我试图通过文档ID列第一组数据,然后计数的群体,但它给了我打错电话了 - 比如我有16行,所有的文档ID都是一样的,所以含混计数应该是但我得到。
答
所以在你的例子中每一行你正在做一个选择不同。我相信你想要的是:
var query = from data in this._data
let docID = data.Field<string>("Document ID")
select new
{
docID
};
var distinctCount = query.Distinct().Count();
答
我假设数据DataTable对象,从而尝试以这种方式
int count = _data.
.AsEnumerable()
.Select(r => r.Field<string>("Document ID"))
.Distinct()
.Count();