Чтобы избежать этой проблемы, вам необходимо клонировать imgList.Items[0]
перед добавлением его в imgList.Items
.Это в основном включает создание нового объекта того же типа и заполнение его данными из оригинала.
Сложность этого зависит от того, что это за объект, но посмотрите на ответы на этот вопрос , чтобы найти несколько советов по клонированию объектов.
Редактировать: Я забыл, что .MemberwiseClone был защищен.
Вы не говорите в своем коде, какой тип объекта вы добавляете в список.Если это ваш класс, вы можете добавить метод для возврата копии:
public MyType ShallowCopy()
{
return (MyType)this.MemberwiseClone();
}
и использовать
imgList.Items.Add(imgList.Items[0].ShallowCopy());
Или вы можете добавить конструктор копирования:
public MyType(MyType original)
{
// Copy each of the properties from original
this.Data = original.Data;
}
и используйте
imgList.Items.Add(new MyType(imgList.Items[0]));