You can't use
.Remove(element) inside a foreach (var element in X) (because it results in Collection was modified; enumeration operation may not execute. exception)... you also can't use for (int i = 0; i < elements.Count(); i++) and .RemoveAt(i) because it disrupts your current position in the collection relative to i.
You can't use foreach, but you could iterate forwards and manage your loop index variable when you remove an item, like so:
Solution:-
static void Main(string[] args)
{
var s = new List<string>() { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };
for (int i = s.Count -1; i >= 0; i--)
{
if ((int) Convert.ToChar(s[i])%2 == 1)
{
s.RemoveAt(i);
}
}
Console.ReadKey();
}
No comments:
Post a Comment