Ошибка приведения типа в лямбда-выражении C # - PullRequest
1 голос
/ 11 марта 2011

Я создал объект ILIst<Person>. Этот список содержит объекты типа Person. Теперь я хочу отфильтровать этот список с помощью лямбда-выражения на основе определенного условия. Поэтому я сделал это следующим образом:

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 ]

3 голосов
/ 11 марта 2011

Нет необходимости в кастинге. Вы можете использовать метод расширения ToList () для создания списка, если он вам нужен:

IList<Person> filteredPerson = personlist.Where(pd => pd.name != "anil").ToList();
2 голосов
/ 11 марта 2011

Использование

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

Результат вашего выражения IEnumerable<Person> и должен быть преобразован в список.

...