Кстати, я согласен со всеми, что Dictionary
, вероятно, более уместно.Но вы можете написать небольшой метод, чтобы осуществить то, что вы хотите:
public static T[] CreateArray<T>(params Tuple<int, T>[] values)
{
var sortedValues = values.OrderBy(t => t.Item1);
T[] array = new T[sortedValues.Last().Item1 + 1];
foreach(var value in sortedValues)
{
array[value.Item1] = value.Item2;
}
return array;
}
И назвать его так:
string[] myArray = CreateArray(new Tuple<int, string>(34, "cat"), new Tuple<int, string>(12, "dog"));
Если C # получает синтаксический сахар для Tuple
, то многолюди, кажется, хотят, это выглядело бы немного чище.
Это хорошая идея?Почти наверняка нет, но я оставлю это на усмотрение ОП.