使用lambda表达式将IEnumberable <T>转换回原始类型

use*_*816 0 c# ienumerable lambda

如果我有以下怎么做,我将lambda表达式的结果从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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Gro*_*ozz 6

使用.Single(),Select也是多余的:

return CustomerList.Single(i => i.Id == id);
Run Code Online (Sandbox Code Playgroud)

正如评论中所提到的那样,如果它不包含所需的密钥,则会出现异常,这应该是预期的行为.