словарь c# один ключ много значений

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

Первая идея состояла в том, чтобы создать словарь, где у Вас есть 1 ключ со многими значениями, так немного как связь "один ко многим".

Я думаю, что словарь только имеет 1 значение ключа.

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

63
задан Drew Gaynor 5 August 2014 в 14:19
поделиться

6 ответов

Вы можете использовать словарь > .

Это позволит каждому ключу ссылаться на ссылку список значений .

5
ответ дан 24 November 2019 в 16:10
поделиться

Использование словаря списков (или другого типа коллекции), например:

var myDictionary = new Dictionary<string, IList<int>>();

myDictionary["My key"] = new List<int> {1, 2, 3, 4, 5};
4
ответ дан 24 November 2019 в 16:10
поделиться

Вы можете использовать список для второго универсального типа. Например, словарь строк, ключ строкой:

Dictionary<string, List<string>> myDict;
53
ответ дан 24 November 2019 в 16:10
поделиться

Тип значения вашего словаря может быть списком или другим классом, который содержит несколько объектов. Что-то вроде

Dictionary<int, List<string>> 

для словаря, который подключен INTS и содержит список строк.

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

7
ответ дан 24 November 2019 в 16:10
поделиться

Словарь .NET имеет отношение 1 к 1 для ключей и значений. Но это не значит, что значение не может быть другим массивом / списком / словарь.

Я не могу придумать причину, чтобы иметь 1 со многими отношениями в словаре, но, очевидно, есть один.

Если у вас есть разные типы данных, которые вы хотите хранить в клавише, то это звучит как идеальное время, чтобы создать свой собственный класс. Тогда у вас есть 1-1, но у вас есть класс значений больше, что 1 кусок данных.

1
ответ дан 24 November 2019 в 16:10
поделиться

Вы можете иметь словарь с коллекцией (или любым другим типом / классом) в качестве значения. Таким образом, у вас есть один ключ, и вы храните значения в вашей коллекции.

1
ответ дан 24 November 2019 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: