在c#中创建键值对

问题描述 投票:0回答:5

我一直在尝试创建一个具有键值对属性的类,我尝试过 Dictionary 关键字,但我需要这样的东西:

ClassName clsName = new ClassName();

clsName.PropertyName.Add["Key"] = value;

我希望它是动态属性,这样我就可以发送任何数据类型。

c# asp.net key-value
5个回答
6
投票

如果我们假设

KeyValuePair
的键为
string
,值为
int
,那么你可以尝试这样做:

clsName.PropertyName = new KeyValuePair<string, int>("keyName", 2);

您不需要使用

Add
方法。实际上,当您有一个集合并且不想向其中添加项目时,后者是有意义的。从您在问题中发布的内容来看,我们不能说这是您的情况。


5
投票

我建议你简单地使用“HASHTABLE”,它对你来说更容易。下面是语法。

    Hashtable hashtable = new Hashtable();
    hashtable.Add("Area", 1000);
    hashtable.Add("Perimeter", 55);

第一个参数代表键,第二个参数代表值。所以它是键值对。


3
投票

如果您在基础课程之后,对于键和值,会

KeyValuePair<string, object>

为你工作?


1
投票
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);

1
投票

我不确定我是否正确理解了这个问题,但显然你的要求可以使用通用字典来满足,其中键类型参数是

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" });
© www.soinside.com 2019 - 2024. All rights reserved.