我收到IList<>数据并将其存储为:

 IList<Student> StudentList = DataKilde.Studenter();


现在,我想将它们读入List<Student>

List<Student> studentWhere3 = StudentList.Where(x=> x.StudentId > 2 && x.StudentId < 8).ToList();


这正在工作...因为我认为.ToList将其转换为Ilist<>List<>

我的问题是,当我这样做时:

List<Student> studentWhere5 = from s in StudentList
                              where s.StudentId==2
                              select s


我收到转换错误,并尝试了以下方法:

from s in (List<Student>)StudentList

from s in StudentList as List<Student>


但这不起作用..我不知道为什么吗?

最佳答案

这是因为select s返回一个IQueryable<Student>,它既不能隐式也不能显式转换为List<Student>,因为两者之间没有继承关系。

您需要将查询结果具体化为一个列表:

(from s in StudentList
where s.StudentId==2
select s).ToList();


这将从源集合(s)中获取所有元素,并将它们存储在实现List<Student>IList<Student>中。

10-07 21:29