Ища альтернативу Списку <KeyValuePair <строка, KeyValuePair <строка, строка>>>

char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = new string(chars);
5
задан JohnIdol 24 June 2009 в 16:46
поделиться

2 ответа

Лучшим вариантом было бы обернуть ваш собственный класс Tuple, вроде того, что поставляется в .NET 4.0 .

Тогда у вас может быть одно:

List<Tuple<string,string,string>>

Это достаточно легко написать в .NET 2.0 - это просто триплет значений вместо двух в KeyValuePair. Однако в .NET 2.0 нет встроенного эквивалента для триплета значений.


Изменить:

Прочитав ваш комментарий о запросах в другом посте, я подумал, что тоже упомянул бы об этом -

Даже если у вас нет уникальных значений в key1, вы можете значительно ускорить любой тип запроса / поиска, используя:

Dictionary<string, List<KeyValuePair<string,string>>>

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

10
ответ дан 18 December 2019 в 07:56
поделиться
struct MrStruct
{
   public string Key1,
   public string Key2,
   public string Value1
}


List<MrStruct>;

Предполагается, что вы обращаетесь к списку последовательно, как вы сказали «итерация». Потенциально другие структуры данных могут быть быстрее для поиска.

10
ответ дан 18 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

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