参数1:无法从';转换;System.Collections.Generic.IEnumerable<;匿名类

本文关键字:IEnumerable Collections Generic lt System 转换 参数 | 更新日期: 2023-09-27 17:59:08

我对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:无法从"System.Collections.Generic.IEnumerable <AnonymousType#1>"转换为"int"

当我使用:

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

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

请问老师,我如何将记录数与列表相匹配?谢谢你的回答。

参数1:无法从';转换;System.Collections.Generic.IEnumerable<;匿名类

问题是您将变量键入为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()