1

私はこの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(c => c.PHONE) でタイプ 'string' を 'bool' に暗黙的に変換することはできません

4

3 に答える 3

1

Countメソッドは、ブール値を返す関数を想定しています。PHONE プロパティが文字列であるように見えるため、これは機能しません。

正確に何を数えようとしていますか?

空でないすべての電話番号またはそのようなものが必要な場合があります。試してみてください

g.Count(c => !String.IsNullOrWhitespace(c.PHONE))
于 2012-06-09T09:50:59.027 に答える
0

何を数えようとしていますか?null 以外または空でない電話番号をカウントする場合は、次を使用する必要があります。g.Count(c => String.IsNullOrEmpty(c.PHONE)==false )

于 2012-06-09T09:51:17.727 に答える
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 != "")
             };
于 2012-06-09T09:51:33.760 に答える