代码之家  ›  专栏  ›  技术社区  ›  James

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

  •  4
  • James  · 技术社区  · 17 年前

    是否可以采用现有类型并使用其他属性从中创建匿名类型?例如(在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}
    

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

    这有可能吗?

    多谢

    詹姆斯

    2 回复  |  直到 11 年前
        1
  •  2
  •   Lasse V. Karlsen    17 年前

    在C中没有这样做的语法。您必须自己用所有属性构造匿名类型。

        2
  •  0
  •   Community Mohan Dere    9 年前

    如果您需要定期执行此操作,请列出对我的扩展名的修改 here 可以保存一些输入。

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

    OP中包含变量的示例: p.AllFieldsVb("p") 收益率 ".Name = p.Name, .Age = p.Age" .