2009-06-05 5 views
1

В моей программе (программе, которая помогает с поиском путей), мне нужно сохранить список, содержащий записи, состоящие из начального узла и конечного узла. Словарь не будет работать, поскольку я не могу гарантировать, что «ключ» (узел, конечно) будет уникальным. Каков наилучший способ хранения таких данных? Редактировать: я использую C# и .Net 3.5.Как хранить связанные данные

ответ

3

Возможно, вам будет проще просто использовать массив структур. Или вектор структур. Это позволяет использовать не-уникальные узлы в вашем списке. Векторы являются стандартным шаблоном в C++, но если C# не поддерживает его, то массив должен работать нормально.

0

Если ваш язык по выбору поддерживает наборы, то набор корней (начало, конец) - это то, что вы можете искать.

+0

Хм .... мне нужно проверить, поддерживает ли это .net. – RCIX

+0

Вы также можете эмулировать набор, используя словарь с краями (s.e) в качестве ключей. Вы можете либо игнорировать значения, либо использовать их для хранения некоторой полезной информации о соответствующих краях вашего графика. – Arkady

+0

Darn, .net действительно не поддерживает кортежи или наборы. Спасибо за идею, хотя! – RCIX

1

Возможно ли использовать список объектов KeyValuePair? Как это?

List<KeyValuePair<ObjectA, ObjectB>> list = new List<KeyValuePair<ObjectA, ObjectB>>(); 

Я не имею VS передо мной прямо сейчас, так что я не уверен, что если у меня есть синтаксис 100% право, но, надеюсь, что это помогает.

+0

Это может сработать, но что происходит, когда я хочу хранить 3 или более наборов связанных элементов? – RCIX

+0

В этом случае вам нужно будет взглянуть на реализацию нового объекта для предоставления в список . – jasonh

Смежные вопросы