2016-04-15 2 views
0

У меня есть общий список с именем mysoldier, чьи предметы имеют такие свойства, как высота, вес и т. Д. Итак, после добавления солдат (mysoldier.Add), я хочу изменить высоту солдата. Для этого я использовал:Как обновить свойство Item из списка?

public void Increase Height() 
{ 
    for (int i = 0; i < mysoldier .Count; i++) 
    { 
    if (this.mysoldier [i].height > 7) 
    { 
    this.mysoldier [i].height= 7; 
    } 
    else 
    { 
    this.mysoldier [i].height+= 1; 
    } 
    } 

, но это не меняет высоту только одного конкретного объекта, а он изменяет высоту всех солдат добавляется в контейнер.

public void IncreaseHeight(int i) //#, or mysoldier.Count - 1 (I believe) for last 
    { 
    if (this.mysoldier [i].height > 7) 
    { this.mysoldier [i].height= 7; } 
    else { this.mysoldier [i].height+= 1; } 
    } 

Но с этим кодом я изменяю только высоту ранее созданного солдата. Поэтому, пожалуйста, кто-нибудь может указать мне, что не так в коде?

+0

последний фрагмент кода в порядке. вам просто нужно изменить код, из которого вы вызываете 'IncreaseHeight', чтобы указать правильный индекс. –

+0

' mysoldier' должен быть 'mySoldier'. (действительно, как объясняет Фернандо, «mySoldiers» с «s») – Fattie

+0

вы должны полностью удалить «это». из кода. Как правило, никогда не используйте «это». в единстве. Иногда вы видите это в примере кода, и это совершенно неправильно. Так что удалите это. – Fattie

ответ

0

Некоторые советы:

Если это список, не называем это "mySoldier", назовите его "mySoldiers". Это может сбить вас с толку. Как вы создаете этих солдат? Потому что ... если вы создаете, а затем добавляете то же самое через цикл, вы добавляете ссылку (адрес памяти) в список. Если вы что-то изменили в одном, вы измените их. Если вы просто хотите изменить свойство для одного конкретного элемента, просто передайте индекс как параметр вашей функции вместо использования оператора for.

Если у вас все еще есть проблема, попробуем решить ее.

+0

Сначала я создаю открытый класс Soldier add, добавьте все его свойства, такие как высота, вес и т. Д., Затем создатель класса и создайте список солдат и добавьте солдат в новый новый список mysoldiers с кнопкой –

Смежные вопросы