我有这个LINQ查询:
var query = from row in context.data_vault
group row by row.STATE into g
select new {
State = g.Key,
Count = g.Sum(row => row.SCORE),
Phones = g.Count(c => c.PHONE)
};
执行时,我收到以下错误:
无法在g.Count隐式转换类型'string'为'bool'(c => c.PHONE)
答案 0 :(得分:1)
Count方法需要一个函数返回一个布尔值。看起来你的PHONE属性是一个字符串,所以这不起作用。
你到底在想什么?
也许你想要所有非空电话号码或类似的东西,试试
g.Count(c => !String.IsNullOrWhitespace(c.PHONE))
答案 1 :(得分:0)
你想算什么?如果您想要计算非空或非空电话号码,则需要使用g.Count(c => String.IsNullOrEmpty(c.PHONE)==false )
答案 2 :(得分:0)
Count()
期待一个谓词 - 返回一个布尔值。你得到它返回一个字符串。我不确定你在追求什么,但是如果你想计算非空白手机的数量,你可以将其修改为
var query = from row in context.data_vault
group row by row.STATE into g
select new {
State = g.Key,
Count = g.Sum(row => row.SCORE),
Phones = g.Count(c => c.PHONE != "")
};