Как в Dictionary обратиться к элементу по индексу?
Словарь не гарантирует сохранение порядка, потому если он важен - можно использовать специальный класс
https://docs.microsoft.com/en-us/dotnet/api/system...

var dict = new OrderedDictionary();
dict.Add("test1", 1);
dict.Add("test2", 2);
dict.Add("test3", 3);

var first = dict["test1"];
var second = dict[1];

Console.WriteLine(first); #1
Console.WriteLine(second); #2
С помощью цикла foreach можно перебрать пары ключ+значение либо отдельно ключи или значения. По числовому индексу никак.