在运行时创建类成员-C#

在运行时创建类成员-C#,c#,C#,我有一个简单的类,定义如下: public class StickColumns { public string wellname { get; set; } public double WellLength { get; set; } } 在代码中,我得到了一些数据,如list perfdepth;假设这是perfdepth1、perfdepth2、perfdepth3。当然,此列表是动态的,因此,我事先不知道如何将我的类定义更改为: public class Stick

我有一个简单的类,定义如下:

public class StickColumns
{
    public string wellname { get; set; }
    public double WellLength { get; set; }
} 
在代码中,我得到了一些数据,如
list perfdepth
;假设这是
perfdepth1、perfdepth2、perfdepth3
。当然,此列表是动态的,因此,我事先不知道如何将我的类定义更改为:

 public class StickColumns
 {
     public string wellname { get; set; }
     public double WellLength { get; set; }
     public double perfdepth1 { get; set; }
     public double perfdepth2 { get; set; }
     public double perfdepth3 { get; set; }
 } 
能否在运行时创建这些新成员? 我认为我需要它的原因是WPF中的数据绑定。最终我需要显示“点序列”;Perfdepth1作为一个系列,perfdepth2作为另一个系列,依此类推,即Perfdepth1的动态数量


如果有更简单的方法,我洗耳恭听

您可能只想将动态类型与
ExpandoObject
一起使用

dynamic stickColumns = new ExpandoObject();
stickColumns.wellName  = "Something";
stickColumns.perfdepth1 = "Something Else";

它有它的缺点,因为它确实意味着您最终会出现运行时错误等。。。但是对于这种类型的场景,它是有用的。

虽然这当然是可能的,但要做到这一点要困难得多。我建议另一种方法,可能使用列表?您看过了吗?请看一下
ExpandoObject
@failedunitest:每个成员都将用作WPF数据绑定中的series.Valuememberpath,这就是原因。列表在那里不起作用。@user7157732对于您尝试执行的所有操作,您都可以用dictionarythnx替换。这可以用于一个可观察的集合吗?它可以是可观察的集合或对象,但会包含在棒列中的数据。我想会有用的。伙计,我不知道怎么用这个。在您的示例中,您是否假设类中已经存在“perfdepth1”成员?您只是在填充值?不是。您需要在msdn上查找ExpandoObject以获得良好的描述。基本上,它是一个允许您使用它动态添加类成员的对象。还可以看看匿名类。两者都可以指定为“动态”,也可以用于动态构造对象。