【问题标题】:How to easily copy only matching field value from one object to another without modifying the unmatched field in c#?如何轻松地将匹配的字段值从一个对象复制到另一个对象而不修改 c# 中不匹配的字段?
【发布时间】:2022-12-06 11:36:59
【问题描述】:

我有两个班级:

Car 
{
  string Color;
}

ModifiedCar{
  string Color;
  int Price;
}

我创建了两个对象:

var obj1 = new Car{
 Color = "red";
}

var obj2 = new ModifiedCar{
  Color = "green";
  Price = 330442;
}

现在我想在不修改价格的情况下将匹配字段值(即颜色字段)从 obj1 复制到 obj2。 我想要的结果对象:

obj2 ={
   Color = "red";
   Price = 330442;
}

我可以通过obj2.color = obj1.color 来完成,但是当field比较多的时候,就会有问题。我想知道,是否有任何内置功能或技术可以让我轻松实现这一目标而无需手动复制每个字段?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您正在尝试做的事情称为对象到对象映射。在 c# 中有一组可用的库可以帮助您做到这一点,最著名的是 Automapper。

    您还可以使用反射来查找所需的字段并将它们的值映射到对象之间,尽管这种方法的性能不会很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多