C # словарь с несколькими разными значениями - PullRequest
0 голосов
/ 27 марта 2012

Я хочу создать хранилище данных, чтобы позволить мне хранить некоторые данные.

Первая идея состояла в том, чтобы создать словарь, который мог бы иметь один ключ к некоторым значениям, но я понятия не имею, как хранить несколько разных значений, например, мне нужны два значения (строка и изображение). Может кто-нибудь подсказать, как это реализовать?

Как еще я могу хранить эту информацию ??

Ответы [ 5 ]

2 голосов
/ 27 марта 2012

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

public class Article
{
    public string Name { get;set;}
    public byte[] Image { get;set;}
}

, и тогда ваш словарь будет выглядеть так:

Dictionary<string,Article> data;
1 голос
/ 27 марта 2012

Что ж, для этого может быть несколько подходов.

1) создайте класс, в котором string и image являются его членами.Затем сохраните экземпляр этого класса в качестве значения.

2) используйте Tuple<String, Image> в качестве значения

0 голосов
/ 27 марта 2012

Хотите хранить разные данные по одному ключу?Например, «key1» -> (имя, возраст, день рождения) или вы хотите сохранить другой тип данных под ключом?Например, «ключ1» -> имя, «ключ2» -> возраст, «ключ3» -> день рождения?В первом случае вы должны создать новый класс для ваших значений и сохранить экземпляр класса под каждым ключом.Во втором случае вы можете создать словарь и задать значение типа «объект».Затем вы можете сохранить любой тип данных объекта для ключей.

0 голосов
/ 27 марта 2012
var dic = new Dictionary<string, object>();

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

0 голосов
/ 27 марта 2012

Поскольку в c # все объекты являются производными от объекта, вы можете использовать объект в качестве значения словаря.

Dictionary<string, object> dataStore;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...