我在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相匹配?谢谢你的回答。
答案 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()