我想获取数据表中列的不同计数。
到目前为止,我有以下内容
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都相同,所以Distinct计数应 1 ,但我得到 16 。
答案 0 :(得分:0)
因此,在每一行的示例中,您正在执行select distinct。我相信你想要的是:
var query = from data in this._data
let docID = data.Field<string>("Document ID")
select new
{
docID
};
var distinctCount = query.Distinct().Count();
答案 1 :(得分:0)
我认为数据是DataTable对象,所以以这种方式尝试
int count = _data.
.AsEnumerable()
.Select(r => r.Field<string>("Document ID"))
.Distinct()
.Count();