Как сказал LaGrandMere, вы можете использовать System.Tuple , если вы используете .NET 4.0 или более позднюю версию:
Tuple<int,string> key = Tuple.Create(0, "Test");
Также обратите внимание, что если вы помещаете строки,в качестве ключей в словарях вы должны использовать ints и т. д., которые бы имели значение NULL в SQL.Не может иметь нулевой ключ в словаре.
var dict = new Dictionary<Tuple<string, int>, string>();
var address1 = Tuple.Create("5th Avenue",15);
var address2 = Tuple.Create("5th Avenue",25);
var address3 = Tuple.Create("Dag Hammarskjölds väg", 4);
dict[address1] = "Donald";
dict[address2] = "Bob";
dict[address3] = "Kalle";
// ...
int number = Int32.Parse("25");
var addressKey = Tuple.Create("5th Avenue",number);
string name = dict[addressKey]; // Bob