Ошибка приведения типа в лямбда-выражении C#

Я создал объект 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'.

Что здесь может быть не так?


person Anil Soman    schedule 11.03.2011    source источник


Ответы (2)


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

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

Использовать

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

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

person Aliostad    schedule 11.03.2011