Метод Dictionary.ElementAt отображается в некоторых классах, но не в других

У меня есть словарь, элементы которого мне нужно перебирать и вносить изменения. Я не могу использовать foreach-оператор, поскольку он иногда вызывает InvalidOperationException, говоря, что сбор не может быть изменен во время перечисления.

Я могу использовать цикл for в сочетании с методом Dictionary.ElementAt, и я успешно использовал его в других классах, но в этом конкретном классе метод ElementAt не может быть найден! Любые идеи?

Ответ 1

ElementAt - это метод расширения, определенный в System.Linq.Enumerable.

Вам нужно добавить предложение use, чтобы сделать его видимым:

using System.Linq;

Обратите внимание, что ElementAt на словаре < TKey, TValue > не имеет большого смысла, хотя, поскольку реализация словаря не гарантирует, что элементы находятся в каком-либо конкретном порядке, и что порядок не изменяется, если вы вносите изменения в словарь.