我收到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>
中。