You cannot modify an iterated collection, it must die with an exception (or in undefined mode). Try making a copy of the array:
foreach (var item in ListView1.Items.ToArray())
{
ListView1.Items.Remove(item);
ListView21.Items.Add(item);
}
EDIT:
in fact, your sample code can be obtained by writing:
ListView21.Items.AddRange(ListView1.Items);
ListView1.Items.Clear();
( , , , , ). .NET2.0, linq , ,.NET3.5.