Что такое структура данных для хранения данных такого типа - PullRequest
0 голосов
/ 25 октября 2011

Например, у меня есть четыре таблицы, и я хочу сохранить что-то вроде этого:

Rows 1,2,3 from spread1, 
Rows 1,2 from spread2,  
Rows 3,4 from spread3, 
Row 3 from spread4

Я подумал, что должен использовать словарь <>, но MSDN говорит, что ключ должен быть уникальным.так каков правильный способ сделать это?

PS: я использую .NET 3.5, не могу использовать Tuple.Спасибо

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

Создайте собственный класс и используйте его в качестве ключа. Включите все поля, необходимые для создания уникального ключа (имя электронной таблицы и список строк), затем соответствующим образом переопределите Equals и GetHashCode.

1 голос
/ 25 октября 2011

Быстрое и прямолинейное решение:

IDictionary<string, IList<int>> map = new Dictionary<string, IList<int>>
{
   { "spread1", new List<int> { 1, 2, 3 } },
   { "spread2", new List<int> { 1, 2 } },
   { "spread3", new List<int> { 3, 4 } },
   { "spread5", new List<int> { 3 } }
}

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

1 голос
/ 25 октября 2011

Для меня это звучит как список списков, List<List<T>>.Вероятно, было бы неплохо обернуть его в пользовательский класс, чтобы дать вам семантику, которую вы хотите (если нет, может быть сложно запомнить, что в каком списке и т. Д .; и, возможно, вам понадобятся дополнительные метаданные в каждом подсписке).

...