Wątek przeniesiony 2014-10-28 18:26 z C# i .NET przez ŁF.

Zerowanie elementów w tablicy i błąd wykroczenia poza zakres

0

Witam

Mam problem z zerowaniem elementu w tablicy

stworzyłem takie coś

comboBox1.Items.Remove(comboBox1.SelectedItem);
 int index = comboBox1.SelectedIndex;
 os[index].imie = null;
 os[index].tel = null;
 os[index].rok = null;

lecz wywala mi bład , że wyszedłem poza zakres tablicy

Tak wygląda deklaracja tablicy:

Osoba[] os = new Osoba[10];

Zmienne imię , tel, rok są typu string.

dodanie znacznika <code class="csharp"> - @furious programming

0

@dam1an Tak, wiem mam błąd w temacie. Ale widzę , że kolejne forum opanowane przez troli

0

Widocznie wychodzisz po za zakres tablicy.
Zamiast tego lepiej użyć List<Osoba> osoby = new List<Osoba>(), lub działać na samym comboboxie.
Po co ty te nulle przypisujesz?
Zamiast tego możesz po prostu usunąć item.

0

No mogę tylko jak usunę jakis NIE OSTATNI item to mi dane z usuniętego elementu wędrują do elementu o index wyzej

0

A po co Ci ten index?

0

index jest indexem tablicy w której trzymam obiekty, wiec musi byc.

1

Jeśli usuwasz zaznaczony obiekt, to żaden obiekt nie jest zaznaczony, więc SelectedIndex zapewne zwraca -1. Jak wyobrażasz sobie -1 element tablicy?

0

Mówię Ci nie trzymaj tego w tablicy. Wywal tą tablicę i operuj na samym comboboxie.

foreach(Osoba os in combobox1.Items)
{
   if (os.Imie == "Jasiek")
       os.Imie = "Zosia";
}

Wszystko co robisz w tej tablicy możesz robić bezpośrednio na comboboxie.

0

Jeszcze jedno pytanie . jak się odowołac do elementu listy

0

Tak jak do elementu tablicy, przez index.

 list[index] 

Albo:

 list.ElementAt(index)
0

Dodam jeszcze że combobox1.Items[3] to też lista.

1 użytkowników online, w tym zalogowanych: 0, gości: 1