[c#]LINQ 查询失败计数 int 时

标签: Linq C#
发布时间: 2017/2/28 22:40:21
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有需要以下查询 DataTable 中的一个值出现的次数进行计数和 countField 列。

var countField = "class"
var query = from row in myDataTable.AsEnumerable()
            group row by row.Field<string>(countField)
            into sumry
            orderby sumry.Count() descending
            select new
            {
                Text = sumry.Key,
                CountofRows = sumry.Count()
            };

这按预期方式工作,除非列包含十进制值。我不是足够熟悉 linq 知道如何更改以允许它以十进制值的实例计数。

我怎样才能此语句更鲁棒所以它将指示该列中包含任何数据类型的工作?

解决方法 1:

你可能只是读取值使用 DataRow's 索引器和其转换为 string :

var query = from row in myDataTable.AsEnumerable()
        group row by row[countField].ToString()
        into sumry
        orderby sumry.Count() descending
        select new
        {
            Text = sumry.Key,
            CountofRows = sumry.Count()
        };

这应该工作所有类型的都预期。

赞助商