Приведение IEnumerable <T>обратно к исходному типу с лямбда-выражением - PullRequest
0 голосов
/ 10 октября 2010

Если у меня есть следующее, как сделать, я приведу результат лямбда-выражения обратно к типу Customer из IEnumerable<Customer> без необходимости повторять его.

public class Customer : CustomerModel
{
    public List<Customer> CustomerList {get;set;}

    public Customer GetCustomerFromListById(long id)
    {
        return CustomerList.Select(c => c).Where(i => i.Id == id);
    }
}

Ответы [ 2 ]

6 голосов
/ 10 октября 2010

Использовать .Single (), также Select является избыточным:

return CustomerList.Single(i => i.Id == id);

Как уже упоминалось в комментариях, таким образом вы получите исключение, если оно не содержит требуемого ключа, что должно быть ожидаемым поведением.

2 голосов
/ 10 октября 2010

Использовать FirstOrDefault ().

   return CustomerList.Select(c => c).Where(i => i.Id == id).FirstOrDefault();
...