c# - List<T> 的手写映射器

标签 c# mapping

如何最好地手写作图List<T1>List<T2>

我的示例类:

public class T1
{
    public int ID {get; set}
    public string Name {get; set}
}

public class T2
{
    public int ID {get; set}
    public string Name {get; set}
}

最佳答案

如果您真的想手动执行此操作,那么方便的方法是扩展方法:

public static T2 ToT2(this T1 t1)
{
    return new T2 { ID = t1.ID, Name = t1.Name };
}

public static List<T2> ToT2List(this IEnumerable<T1> t1List)
{
    return t1List.Select(t1 => t1.ToT2()).ToList();
}

用法:

T2 t2 = t1.ToT2();
List<T2> t2List = t1List.ToT2List();

但我建议你使用Automapper (或其他映射工具),它将使用反射按名称匹配属性。

关于c# - List<T> 的手写映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648576/

相关文章:

c# - 如何将 Base 对象的引用更改为派生类型的派生对象

c# - Process.Start() 和进程树

python - 如何使用其中一列作为引用来匹配两列?

arrays - 将带有值数组的字典快速映射到另一个带有值数组的字典?

c# - 在 Windows 服务中使用 WCF 服务时出错

c# - 在控制台应用程序中验证 Azure AD 持有者 token

c# - 如何使 WinForms 表单在 AvalonDock 中作为 DockableContent 工作?

Elasticsearch,搜索url中的域

Java Spring 友好的 URL 映射问题

java - 将 servlet 请求参数映射到 java 类的最佳方法是什么?