参数1:无法从'System.Collections.Generic.IEnumerable <anonymoustype#1>'转换为'int'</anonymoustype#1>

时间:2014-04-20 07:08:04

标签: c# linq

我在linq问题中遇到方法Count()的问题:

IEnumerable<BookListRecord> bookListRecord;

IEnumerable<Tuple<string, int>> listTeacher = new List<Tuple<string, int>>(
from b in bookListRecord
group b by b.Teacher into g
select new { g.Key, Count = g.Count()}
);

我收到错误:参数1:无法转换为&#39; System.Collections.Generic.IEnumerable <AnonymousType#1>&#39;到&#39; int&#39;

当我使用时:

select new {g.Key, g.Count()}

我收到错误:无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。

我如何将记录数量与listTeacher相匹配?谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

问题是您输入的变量为IEnumerable<Tuple<string, int>>,但您正在使用select new {g.Key, g.Count()}创建匿名类型。将其更改为以下内容。

IEnumerable<Tuple<string, int>> listTeacher = 
                                         (from b in bookListRecord
                                          group b by b.Teacher into g
                                          select Tuple.Create( g.Key, g.Count()))
                                         .ToList()