c# - 将自定义对象属性映射回原始对象

标签 c# object properties casting mapping

有没有办法将一个自定义对象属性关联到另一个自定义对象属性,以便有一种简单的转换方法?

例如:

我有一个名为 degree 的对象,它有两列:TypeID、TypeName 我有另一个名为 typelist 的对象,它也有两列:_id、_typename

我希望能够执行以下操作:degree _dg = (degree)typelistitem 而不必明确说明 _dg.TypeID = typelistitem._id

最佳答案

C# 语言中没有内置任何内容。

当然,您可以编写一个辅助方法,为其提供从 X 类属性到 Y 类属性的映射,但有什么意义呢?比较:

// fake syntax, this is not really possible
y = makeCopy<Y>(x, {_id -> TypeId,
                    _typename -> TypeName});

y = new Y();
y._id = x.TypeId;
y._typename = x.TypeName;

前者真的更具可读性还是更简洁?无论如何,您需要记下 X 的哪个属性映射到 Y 的哪个属性,而后一个示例仅向每行添加 8 个字符的开销 (y.? = x.?;),因此我真的不认为更通用的解决方案值得付出努力。

关于c# - 将自定义对象属性映射回原始对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30882839/

相关文章:

c# - 我应该什么时候调用 SerialPort.Dispose() 与 SerialPort.Close()?

c# - 如何将整个字符串匹配为具有单个正则表达式的两种格式之一?

javascript - 如何从数组中的每个对象中删除键?

javascript - 错误 : Can't bind to 'ngModel' since it isn't a known property of

c# - C# 扩展方法中的 Lambda

javascript - 调用文字对象中的每个函数 (Javascript)

javascript - 在 Javascript 中编辑对象的值

javascript - 动态添加参数作为对象的属性 - JavaScript

java - 有没有办法在java中获取属性文件中某些过滤键的列表?

c# - 引用对象属性作为方法参数