如果值存在,则获取行数

时间:2015-08-07 13:00:15

标签: c# linq

如果数据表中存在值

,我正在尝试获取计数
String searchAuthor = "John Grisham"     
bool contains = tbl.AsEnumerable()
                .Any(row => searchAuthor == row.Field<String>("Author")); 

它将帮助我检查是否存在特定数据 但是如果数据存在,想要获取作者列的计数

编辑:

我想得到&#34;作者&#34;列数如果存在数据 不想得到包含&#34; John Grisham&#34;在&#34;作者&#34;

2 个答案:

答案 0 :(得分:2)

试试这个

String searchAuthor = "John Grisham"     
var count = tbl.AsEnumerable().Count(row => searchAuthor == row.Field<String>("Author")); 

编辑:要使数据计数不为null或空作者

var count = tbl.AsEnumerable().Count(row => row.Field<String>("Author") != null && row.Field<String>("Author").Trim() != string.Empty);

OR

var count = tbl.AsEnumerable().Count(row => !string.IsNullOrEmpty(row.Field<String>("Author")));

答案 1 :(得分:1)

要获取Author非空的行数,请尝试:

var count = tbl.AsEnumerable()
               .Count(row => !String.IsNullOrWhiteSpace(row.Field<String>("Author"));

这会导致单次检查并避免生成Trim之类的临时字符串。如果您有很多行或者需要经常执行过滤,这可能很重要。