将IEnumerable <X>转换为List <Y>

Mic*_*hel 1 c# linq generics

我(在Linq中)有一个IEnumerable类型的Client.现在我必须返回ClientVM类型的通用列表.ClientVM是Client的子集(不是子类型或任何东西),我无法使其工作.

下面是我到目前为止的代码,但它不能这样工作.但也许这段代码可以为我的帖子添加一个额外内容来指定我想要做的事情:

clientVMs = clients.ToList().ConvertAll(new ClientVM( z => z.Reference, z=>z.Fullname ));
Run Code Online (Sandbox Code Playgroud)

clientVMs是一个通用List<ClientVM>,类ClientWM有一个构造函数,它接受两个属性,客户端是IEnumerable<Client>

而且,offtopic,当你处理泛型时编译器消息对人类来说是不可读的,imho.

Luk*_*keH 7

也许是这样的?

var clientVMs = clients.Select(c => new ClientVM(c.Reference, c.Fullname))
                       .ToList();
Run Code Online (Sandbox Code Playgroud)