Если вы используете .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>
, который очень ясно дает понять, что будет храниться.
Вы можете реализовать равенство и т.д., если хотите. Лично я хотел бы, чтобы подобные вещи стали проще - анонимные типы почти делают это, но тогда их нельзя назвать ...