tags:

views:

43

answers:

1

I have a Dictionary whose elements I need to iterate through and make changes. I cannot use foreach statement, since it sometimes throws InvalidOperationException, saying that the collection cannot be modified during an enumaration.

I can use a for loop, in conjunction with Dictionary.ElementAt method, and I successfully used it in other classes, but in this particular class, the method ElementAt cannot be found! Any ideas?

+7  A: 

ElementAt is an extension method defined in System.Linq.Enumerable.

You need to add a using clause to make it visible:

using System.Linq;

Note that ElementAt on a Dictionary<TKey,TValue> doesn't make a lot of sense, though, as the dictionary implementation does not guarantee elements to be in any specific order, nor that the order does not change if you make changes to the dictionary.

dtb
And make sure your assembly is targeting .NET 3.5 (or higher).
Nate C-K