我一直在尝试创建一个具有键值对属性的类,我尝试过使用Dictionary关键字,但我需要像这样的东西:
ClassName clsName = new ClassName();
clsName.PropertyName.Add["Key"] = value;
我希望它成为动态属性,这样我就可以发送任何数据类型。
假设您的keyvaluepair的键为字符串,值为整数,则可以尝试以下方法:
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>
你需要我为你工作吗?
我不确定我是否正确理解了问题,但显然您的要求可以通过使用 通用字典 来满足,其中键类型参数是 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" });
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);
clsName ["Key"] = value
等),而不是通过“添加”操作。因此,我不确定您希望做什么。您只是需要在类中创建一个索引器吗? - Matthew Haugenobject
作为字典的值,使用Dictionary<string,object>
而不是自定义类。你是想创建一个能够存储其他类的表示的类吗?那么PropertyName
的类型应该是Dictionary<string,object>
。也许如果你能给我们展示一些你希望如何使用/处理/与这个假设类进行交互的例子,我们可以向你展示如何实现它。 - undefined