Új hozzászólás Aktív témák
-
ArchElf
addikt
Nem egyszerűen kitörlöm az első listából, hanem, mivel a lista elemei nem törölhetők közvetlenül a foreach ciklusban, így az elemeket egyesével végignézem, hogy törlendők-e, ha igen hozzáadom egy másik listához (törlendő elemek listája). Ekkor az első listából nem tudok még törölni (mert invalid lesz az iterátor).
A második ciklusban a törlendő elemek listáján lépkedek végig. Ekkor minden elemre kiadom az elsőlista.Remove(ojjektum) parancsot (ahol az ojjektum a törlendő elemek listájának aktuális eleme). Mivel most a második lista iterátorát használom, így nyugodtan eleht az első listából törölni. A második lista végigjátszása után nyugodtan lehet magát a második listát is törölni (mivel már nincs rá szükség).
Még egy apróság: amennyiben több szálon párhuzamosan is elérjük a listát a futás alatt (szükséges lehet bizonyos esetekben), úgy azt az egész cécó alatt lockolni kell.Remélem érthető volt.
Még egy. Ha a listaelemeket nem lehet rendesen egymáshoz hasonlítani akkor lehet index alapján is törölni, ez viszont macerásabb.
Ebben az esetben egy fordított for ciklussal célszerű megcsinálni, mert így az indexek nem keverednek össze:
for(ix = lista.Length-1; ix >= 0; ix--)
{
if(törlendő(lista[ix]))
lista.RemoveAt(ix);
}De láttam ilyet is a neten:
foreach(object o in new List<object>(lista))
{
if (törlendő(o))
lista.Remove(o);
}AE
-
bpx
őstag
azt a listát nem lehet ciklus közepén módosítani, amin épp iterálsz, mert egy exception a jutalom
egyébként én is ezt a változatot használom (ArchElf) a program többi részén (pl. a sakk logika ellenőrzésnél), csak a kérdéses helyen félbehagytam a dolgot, és ott úgy maradt
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Egyéves Gemini AI Pro a Google-től a magyar egyetemistáknak is
- Telekom mobilszolgáltatások
- Sorozatok
- Hogy is néznek ki a gépeink?
- Samsung Galaxy S24 - nos, Exynos
- Battlefield 6
- Garmin Instinct – küldetés teljesítve
- Asztalos klub
- iPhone topik
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Xiaomi Redmi Pad SE 64GB, Kártyafüggetlen, 1 Év Garanciaval
- Playstation 5 FAT Lemezes + 2 kontroller + Custom borítás
- Xiaomi Redmi 14C 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple MacBook Pro 14 2021(M1 Pro) 16GB RAM / 512GB SSD / 273 ciklus prémium gép!
- Apple MacBook Pro 16" 2021 (M1 Pro) 32GB RAM / 512GB SSD / 3456X2234 Retina XDR
- AKCIÓ! Asus ROG Flow Z13 +ROG XG RTX 3070- i9 12900H 16GB DDR5 1TB SSD RTX 3050Ti 4GB + RTX 3070 W11
- Minis Forum Mini PC MS-A2 Ryzen 9955HX RAM és SSD nélkül 1 év garanciával
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3716
- BESZÁMÍTÁS! ASUS ROG STRIX RTX 3070Ti 8GB videokártya garanciával hibátlan működéssel
- PS Plus előfizetések kedvező áron
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest



