在c# 4.0中创建键和值的通用集合

本文关键字:集合 键和值 创建 | 更新日期: 2023-09-27 18:02:05

我需要像Dictionary这样的东西,其中动态可以是从字符串到对象的任何东西。

但是当我使用对象时,我需要知道对象的类型,然后访问这些对象的适当属性。

有没有不使用反射的方法

* EDITED **

我试着用这个:

CloneObject<T, TU>(IDictionary<T, TU> sourceObject)

但是如果我使用这个,我怎么能访问T的公共字段而不使用反射

在c# 4.0中创建键和值的通用集合

可以使用Hashtable

以下是示例

http://www.dotnetperls.com/hashtable

你也可以使用字典,它比哈希表更有效

参见示例:

http://www.dotnetperls.com/dictionary-keys

我有点糊涂了。您试图在字典中存储任何类型的对象,但访问它们时没有反射。

如果是,可以使用dynamic类型:

Dictionary () = new Dictionary();

dict["string"] = "some string";
dict["int"] = 25;
dict["my_class"] = new MyClass {SomeProperty = 12};

然后你可以访问所有这些值而不需要任何强制类型转换:

string s1 = dict["string"].Substring(0, 4); // s1 equals to "some"
int propertyValue = dict["my_class"].SomeProperty; // propertyValue equals to 12

where MyClass是:

class MyClass
{
  public int SomeProperty {get;set;}
}

不使用反射,此任务无法完成。我所做的就是分别创建对象的克隆,然后使用它们。