asp.net 在C#中创建键值对

soat7uwm  于 2023-10-21  发布在  .NET
关注(0)|答案(5)|浏览(121)

我一直在尝试创建一个类,它有一个属性的键值对,我已经尝试了字典关键字,但我需要这样的东西:

ClassName clsName = new ClassName();

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

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

3b6akqbq

3b6akqbq1#

如果我们假设KeyValuePair的键和string一样,值和int一样,那么你可以这样做:
clsName.PropertyName = new KeyValuePair<string, int>("keyName", 2);
您不需要使用Add方法。实际上,当你有一个集合,不想向其中添加一个项目时,后者是有意义的。从你在你的问题中发布的内容来看,我们不能说这是你的情况。

snz8szmq

snz8szmq2#

我建议你简单地使用“哈希表”,它对你来说容易得多。下面是语法。

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

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

kq0g1dla

kq0g1dla3#

如果你是一个基本类,对于键和值,

KeyValuePair<string, object>

为你工作?

polhcujo

polhcujo4#

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);
nukf8bse

nukf8bse5#

我不确定我是否正确理解了这个问题,但显然您的要求可以使用generic Dictionary来满足,其中键类型参数是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" });

相关问题