将现有类型转换为匿名类型并添加新属性

时间:2009-01-30 11:42:50

标签: vb.net clone anonymous-types

是否可以使用现有类型并使用其他属性从中创建匿名类型?例如(在VB中)

Public Class Person
  Public Name As String
  Public Age As Integer
End Class

Dim p As New Person With {.Name = "James", .Age = 100}

Dim n = New With {.ShoeSize = 10}

我想要的是克隆p的所有属性然后添加新属性(ShoeSize)的第二个对象(n)。

这可能吗?

非常感谢

詹姆斯

2 个答案:

答案 0 :(得分:2)

在C#中没有语法可以做到这一点。你必须自己构建匿名类型,包含所有属性。

答案 1 :(得分:0)

如果您需要定期执行此操作,则对here列出的扩展程序进行修改可以节省一些输入内容。

也就是说,如果他们返回string.Join(", " , from p in ps select "." + p.Name + " = " + VarName + "." + p.Name),您至少可以保存一些打字。

OP中变量的示例:p.AllFieldsVb("p")返回".Name = p.Name, .Age = p.Age"