這是將對象從一個列表移動到另一個列表的正確方法嗎?將一個對象從一個集合移動到另一個對象
private ObservableCollection<SomeObject> toBeProcessed =
new ObservableCollection<SomeObject>();
public ObservableCollection<SomeObject> ToBeProcessed
{
get
{
return toBeProcessed ;
}
set
{
//implements INotifyProperyChanged:
SetField(ref toBeProcessed , value, "ToBeProcessed");
}
}
public void MoveSelected(ObservableCollection<SomeOject> SelectedObjects)
{
foreach (var obj in SelectedObjects)
{
ToBeProcessed.Add(obj);
SelectedObjects.Remove(obj);
}
}
這是正確的方法嗎?如果是的話,還有更好的方法嗎?
更新,對不起計算過,它不能在foreach循環中進行,以將其更改爲這個
for (int i = SelectedObjects.Count - 1; i >= 0; i--)
{
ToBeProcessed.Add(SelectedObjects[i]);
SelectedObjects.RemoveAt(i);
}
它仍然是正確的方法是什麼?
這個代碼將拋出一個異常'Inval idOperationException:集合已被修改;枚舉操作可能不會執行'在foreach循環 – Jehof
我認爲它更適合CodeReview – Jehof
你在哪裏調用'MoveSelected'? –