Нет прямого встроенного способа сделать это.Это потому, что для OrderedDictionary
индекс является ключом;если вы хотите фактический ключ, то вы должны отслеживать его самостоятельно.Вероятно, самый простой способ - скопировать ключи в индексируемую коллекцию:
// dict is OrderedDictionary
object[] keys = new object[dict.Keys.Count];
dict.Keys.CopyTo(keys, 0);
for(int i = 0; i < dict.Keys.Count; i++) {
Console.WriteLine(
"Index = {0}, Key = {1}, Value = {2}",
i,
keys[i],
dict[i]
);
}
Вы можете инкапсулировать это поведение в новый класс, который обернет доступ к OrderedDictionary
.