Unity Listからforeachを使ってremoveする


foreach(Class item in Lists){
 if(item.id == id){ 
  Lists.remove(item);
 }
}

こんなかんじでやると、

InvalidOperationException: Collection was modified; enumeration operation may not execute.

とエラーになるので、


List<Class> TmpList = Lists;
foreach(Class item in Lists){
 TmpList.Add(item );
}

foreach(Class item in TmpList){
 if(item.id == id){ 
  Lists.remove(item);
 }
}

こうしてやる

コメントを残す