2011-03-11 2 views
1

ILIst<Person> 개체를 만들었습니다. 이 목록에는 Person 유형의 개체가 포함되어 있습니다. 이제 특정 조건을 기반으로 람다 식을 사용하여이 목록을 필터링하려고합니다.C# 람다 식 형식 캐스팅 오류

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'. 

다음과 같이 그래서 나는 그것을했다?

답변

3

주조 할 필요가 없습니다. 필요한 경우 확장 방법 ToList()을 사용하여 목록을 만들 수 있습니다.

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

사용

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

표현식의 결과는 IEnumerable<Person>하고 목록으로 변환 할 필요가있다.