reflection - 将 List<Type> 转换为 List<Type B>

标签 reflection extension-methods servicestack

理解translate的概念。使用它来将 DataModel 类型转换为表示层的 DTO 类型,这样效果很好。

objTypeB = objTypeA.TranslateTo<clsTypeB>();

TypeA 和 TypeB 之间的差异只是少数属性的数据类型,我在 Property Set 中转换了它们。方法。

但是在上面的实现中,如果源是 List<TypeA> ,我循环遍历每个以翻译为 TypeB并添加另一个 List<TypeB>实例。是否可以做这样的事情:

假设resultListAList<clsTypeA>

var resultListB = resultListA.TranslateTo<List<clsTypeB>>();

我尝试过,但似乎没有转换。我得到一个空的resultListB 。有什么简单的方法吗?

最佳答案

这应该可以做到:

var resultListB = resultListA.ConvertAll(x => x.TranslateTo<clsTypeB>());

关于reflection - 将 List<Type> 转换为 List<Type B>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13315579/

相关文章:

c# - 从字符串创建类实例和调用方法

c# - 获取有关程序集的信息

.net - VB.NET 编译器如何选择要运行的扩展重载?

asp.net-mvc - 在单声道或 Windows 上托管 ServiceStack、MVC3 或 MVC4 以及单声道的状态是什么

c# - 从 Postgresql 数据库 ServiceStack.Ormlite 生成类对象

reflection - 基于镜子的反射和传统反射有什么区别?

c# - 为什么在尝试使用动态参数调用扩展方法时出现错误 CS1973

extension-methods - WeakReference的扩展方法

c# - 绕过 DotNet 核心服务堆栈上的 SSL 证书验证

c#-4.0 - 如何使用反射调用接口(interface)中的方法