создание общей коллекции ключей и значений в C # 4.0 - PullRequest
0 голосов
/ 15 июля 2011

Мне нужно что-то вроде словаря, где динамическим может быть что угодно, от строки до объектов.

Но когда я использую объекты, мне нужно знать тип объекта и затем обращаться к соответствующим свойствам этих объектов.

Есть ли способ без использования Reflection.

* EDITED **

Я пытался использовать это:

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

Но если я использую это, как я могу получить доступ к открытым полям T без использования отражения

Ответы [ 3 ]

1 голос
/ 15 июля 2011

Вы можете использовать Hashtable для этой цели

Вот примеры

http://www.dotnetperls.com/hashtable

Вы также можете использовать словарь, который более эффективен, чем Hashtable

См. Примеры здесь:

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

0 голосов
/ 19 июля 2011

Без использования отражения эта задача не может быть выполнена.Все, что я сделал, это создал клоны объектов отдельно, а затем использовал их.

0 голосов
/ 15 июля 2011

Я немного запутался. Вы пытаетесь сохранить любые типы объектов в своем словаре, но получаете к ним доступ без отражения.

Если это так, вы можете использовать dynamic типы:

Словарь dict = новый словарь ();

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

где MyClass:

class MyClass
{
  public int SomeProperty {get;set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...