Словарь С#, 2 значения

Какова была бы лучшая структура данных С# для использования одного ключа и выведенная два значения?

По существу мне нужен Dictionary<string, string, string>. Есть что-то вроде этого?

Ответы

Ответ 1

Если вы используете .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>

что делает его очень понятным, что будет сохранено.

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

Ответ 2

class A {
  public string X, Y;
}

Dictionary<string, A> data;

Ответ 3

Создайте структуру, содержащую ваши значения, а затем используйте

Dictionary<string, MyStruct> dict = new Dictionary<string, MyStruct>();

Ответ 4

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

Dictionary<string,KeyValuePair<string,string>>

Ответ 5

Да, есть точно, что. Вы можете сохранить два значения в классе или структуре. Или вы хотите что-то еще?

Ответ 6

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