Это более общее решение для получения индекса вместе с каждым объектом в массиве.Должно работать тестирование, если оно первое.
List<String> entries = new List<string>();
entries.Add("zero");
entries.Add("one");
entries.Add("two");
Dictionary<int, String> numberedEntries = new Dictionary<int, string>();
int i = 0;
entries.ForEach(x => numberedEntries.Add(i++, x));
foreach (KeyValuePair<int, String> pair in numberedEntries) {
Console.WriteLine(pair.Key + ": " + pair.Value);
}
В этой настройке ключ KeyValuePair - это индекс, а значение - это объект с этим индексом, в моем примере это строка, но любой объект может бытьразмещен тамЭто добавляет немного накладных расходов, но при необходимости может использоваться для определения любого объекта в индексе списка.