在C#lambda表达式中输入转换错误

时间:2011-03-11 09:43:46

标签: .net c#-3.0 ilist

我创建了ILIst<Person>的对象。此列表包含Person类型的对象。 现在我想使用基于特定条件的lambda表达式来过滤此列表。所以我这样做了:

IList<Person> personlist = new IList<Person>;
...
...
...

IList<Person> filtered_person = 
        (IList<Person>)personlist.Where(pd => pd.name != "anil");

但是这一行给出了错误:

Unable to cast object of type 'WhereListIterator`1[Person]' to type 'Person'.

这里有什么不对?

2 个答案:

答案 0 :(得分:3)

无需施法。如果需要,可以使用ToList()扩展方法创建列表:

IList<Person> filteredPerson = personlist.Where(pd => pd.name != "anil").ToList();

答案 1 :(得分:2)

使用

IList<Person> filtered_person = (IList<Person>)personlist.Where(pd => pd.name != "anil").ToList();

表达式的结果为IEnumerable<Person>,需要转换为列表。