В своем комментарии к max s answer вы говорите, что действительно хотите получить key in, а not the index of, KeyValuePair, которая содержит определенное значение. Вы можете отредактировать свой вопрос, чтобы сделать его более понятным.
Стоит отметить ( EricM затронул это в своем ответе ), что значение может появиться более одного раза в словаре, в котором В этом случае нужно подумать, какой ключ он хотел бы получить: например, первое, что появляется, последнее, все из них?
Если вы уверены, что каждый ключ имеет уникальное значение , у вас может быть другой словарь, в котором значения первого выступают в качестве ключей, а предыдущие ключи выступают в качестве значений. В противном случае эта вторая словарная идея ( предложенная от Jon Skeet ) не сработает, поскольку вам снова придется подумать, какой из всех возможных ключей использовать в качестве значения в новом словаре.
Если бы вы спрашивали об индексе, ответ EricM был бы в порядке. Тогда вы можете получить KeyValuePair с помощью:
yourDictionary.ElementAt(theIndexYouFound);
при условии , что вы не добавляете / удаляете вещи в yourDictionary
.
PS: я знаю, что прошло уже почти 7 лет, но какого черта. Я подумал, что лучше сформулировать мой ответ как обращающийся к ОП, но, конечно, сейчас можно сказать, что это ответ практически для любого другого , но ОП. Полностью осознаю это, спасибо.