我一直在尝试创建一个具有键值对属性的类,我尝试过 Dictionary 关键字,但我需要这样的东西:
ClassName clsName = new ClassName();
clsName.PropertyName.Add["Key"] = value;
我希望它是动态属性,这样我就可以发送任何数据类型。
如果我们假设
KeyValuePair
的键为 string
,值为 int
,那么你可以尝试这样做:
clsName.PropertyName = new KeyValuePair<string, int>("keyName", 2);
您不需要使用
Add
方法。实际上,当您有一个集合并且不想向其中添加项目时,后者是有意义的。从您在问题中发布的内容来看,我们不能说这是您的情况。
我建议你简单地使用“HASHTABLE”,它对你来说更容易。下面是语法。
Hashtable hashtable = new Hashtable();
hashtable.Add("Area", 1000);
hashtable.Add("Perimeter", 55);
第一个参数代表键,第二个参数代表值。所以它是键值对。
如果您在基础课程之后,对于键和值,会
KeyValuePair<string, object>
为你工作?
public class ClassName
{
public KeyValuePair<string, object> PropertyName {get; set; }
}
var c = new ClassName();
c.PropertyName = new KeyValuePair<string, object>("keyName", someValue);
或者,如果您需要存储多个值,请使用
Dictionary<string, object>
作为属性的类型。
public class ClassName
{
public ClassName()
{
this.PropertyName = new Dictionary<string, object>();
}
public Dictionary<string, object> PropertyName {get; set; }
}
var c = new ClassName();
c.PropertyName.Add("stringKey", anyValue);
我不确定我是否正确理解了这个问题,但显然你的要求可以使用通用字典来满足,其中键类型参数是
string
,值类型参数是object
,即你可以使用Dictionary<string,object>
像这样:
public class ClassName {
public Dictionary<string, object> Dictionary { get; set; }
}
然后:
ClassName classObject = new ClassName();
classObject.Dictionary.Add("Key", new { "value" });