Witam! Jak moge całkowicie usunąć rekord z tablicy? Stworzyłem tablice ze struktury - coś na zasadzie bazy danych - index, imie, nazwisko. Na te chwile doszedłem do tego jak ten element przerzucić na koniec mojej tabeli ale nie wiem jak go całkowicie usunąć. Prosze o pomoc.
Rozwiń, czy pytasz o tablicę jak np:?
string[] tablica
W takiej strukturze masz pola przypisane do danego indeksu tablicy, więc żeby usunąć jakiś element musiałbyś przepisać wszystkie pozostałe elementy oprócz niego do innej tablicy i zwrócić ją jako nową wersję.
Wykorzystaj lepiej jakaś prawdziwą strukturę danych, np.
List<T>
, która udostępnia metody .Add, .Remove itd.
Stworzyłem swoja strukture Czlowiek
w której mam pola: index, imie, nazwisko. Dodałem to wszystko do kolejnej struktury w ktorej mam tablice typu człowiek. Ogolnie po dodaniu kilku rekordow chce usunac jakis i teraz nie wiem jak to zrobic tak zeby calkowicie zniknal dany rekord. Chcialem to zrobic w liscie ale problem pojawil mi sie przy wyswietlaniu bo rozumiem ze wtedy musze użyc foreach, a to spowoduje wyswietlenie tych pol tablicy ktore nie sa jeszcze zapelnione (wszedzie indexy beda na 0). Zrobilem metode, w ktorej pobieram id i :
List<Czlowiek> tablica = new List<Czlowiek>(Baza.Tab);
tablica.RemoveAt(id);
To wyświetlaj takim foreach:
foreach (var czlowiek in tablica.Where(c => c.index != 0))
A zamiast .RemoveAt proponuje:
public void UsunCzlowieka(int id)
{
tablica.Remove(tablica.FirstOrDefault(c => c.index == id));
}
I nie będziesz się musiał martwić o kolejność
Dzięki, przez moment rzeczywiście to działało ale teraz juz tak pozmienialem że nic nie pokazuje przy wyświetlaniu. Trudno, widac nie dla mnie takie coś. Dzięki za pomoc!
Udało mi się to zrobic na zwykłej tablicy :) Okazało się że brakowąło mi jednej linijki kodu xD Ale bardzo dziękuje za opowiedz bo teraz przynajmniej wiem jak może to wyglądać w liście! Wielkie dzięki!!!