Неверное приведение из List в IEnumerable обратно в List, почему?

Так что в основном у меня есть этот метод.

public List<Customer> FilterCustomersByStatus(List<Customer> source, string status)
{
    return (List<Customer>)source.Where(c => c.Status == status);
}

Я выдает ошибку, что он не может использовать:

Unable to cast object of type 'WhereListIterator`1[AppDataAcces.Customer]' to type 'System.Collections.Generic.List`1[AppDataAcces.Customer]'.

Почему...? поскольку базовый тип тот же, создает ли Enumerable.Where новый экземпляр WhereListIterator, и если да, то зачем кому-то это делать, потому что это ненужная потеря производительности и функциональности, поскольку мне всегда приходится создавать новый список (. Список())

5
задан Serg Rogovtsev 29 July 2012 в 17:21
поделиться