Какова была бы лучшая структура данных С# для использования одного ключа и выведенная два значения?
По существу мне нужен Dictionary<string, string, string>
. Есть что-то вроде этого?
Какова была бы лучшая структура данных С# для использования одного ключа и выведенная два значения?
По существу мне нужен Dictionary<string, string, string>
. Есть что-то вроде этого?
Если вы используете .NET 4, вы можете использовать
Dictionary<string, Tuple<string, string>>
Если вы этого не сделали, вы можете создать свой собственный тип Tuple
, который работает одинаково:)
В качестве альтернативы, если вам это нужно только в одном месте, вы можете создать свой собственный тип, который аккуратно инкапсулировал две строки, используя соответствующие имена. Например:
public sealed class NameAndAddress
{
private readonly string name;
public string Name { get { return name; } }
private readonly string address;
public string Address { get { return address; } }
public NameAndAddress(string name, string address)
{
this.name = name;
this.address = address;
}
}
Затем вы можете использовать:
Dictionary<string, NameAndAddress>
что делает его очень понятным, что будет сохранено.
Вы можете реализовать равенство и т.д., если хотите. Лично я хотел бы, чтобы подобное упрощалось - анонимные типы почти делают это, но тогда вы не можете назвать их...
class A {
public string X, Y;
}
Dictionary<string, A> data;
Создайте структуру, содержащую ваши значения, а затем используйте
Dictionary<string, MyStruct> dict = new Dictionary<string, MyStruct>();
Вы можете использовать словарь KeyValuePairs
Dictionary<string,KeyValuePair<string,string>>
Да, есть точно, что. Вы можете сохранить два значения в классе или структуре. Или вы хотите что-то еще?
Сделайте класс, чтобы сохранить свою ценность и сделать его словарем. Если класс используется только в контексте одного содержащего класса (например, он используется для доставки структуры данных для свойства класса), вы можете сделать свой класс частным вложенным классом.