foreach文では、配列要素の動的削除はできない。ので、IEnumerator をつかう。
public static void RemoveSameItem(ref ArrayList listA, ref ArrayList listB) {
IEnumerator ie = listA.GetEnumerator();
while(ie.MoveNext()) {
if (listB.Contains(ie.Current)) {
listB.Remove(ie.Current);
listA.Remove(ie.Current);
ie = listA.GetEnumerator();
}
}
}