10

如何将 var 类型转换/转换为 List 类型?

此代码片段给了我错误:

List<Student> studentCollection = Student.Get();

var selected = from s in studentCollection
                           select s;

List<Student> selectedCollection = (List<Student>)selected;
foreach (Student s in selectedCollection)
{
    s.Show();
}
4

4 回答 4

24

当您执行 Linq to Objects 查询时,它将返回 type IEnumerable<Student>,您可以使用该ToList()方法List<T>从 an创建一个IEnumerable<T>

var selected = from s in studentCollection
                           select s;

List<Student> selectedCollection = selected.ToList();
于 2009-10-11T17:52:23.413 回答
8

您的var示例代码中的实际键入为IEnumerable<Student>. 如果您所做的只是枚举它,则无需将其转换为列表

var selected = from s in studentCollection select s;

foreach (Student s in selected)
{
    s.Show();
}

如果您确实需要它作为列表,Linq 的ToList()方法将为您将其转换为一个。

于 2009-10-11T17:54:50.447 回答
3

您可以调用 ToList LINQ 扩展方法

List<Student> selectedCollection = selected.ToList<Student>();
foreach (Student s in selectedCollection)
{
    s.Show();
}
于 2009-10-11T17:51:24.730 回答
1

尝试以下

List<Student> selectedCollection = selected.ToList();
于 2009-10-11T17:52:59.313 回答