בעיה ב ArrayList

asico

New member
בעיה ב ArrayList

ברצוני לעבור על כל איבר ב ArrayList ולמחוק מתוכו איברים המקיימים תנאי מסויים. הבעיה: כאשר אני נמצא בלולאה ומבצע Remove לאחד האיברים, במקום להגיע לאיבר הבא באיטרציה הבאה, אני מגיע לאיבר שאחרי האיבר הבא (כנראה לאחר המחיקה האינדקסים מתעדכנים). אז השאלה היא: איך למחוק איברים מה- ArrayList תוך כדי המעבר עליהם? בתודה, אסי
 
לך על האינדקס מהסוף להתחלה

התכנית הזו מתחילה עם ArrayList שיש בו את המספורים מ-1 עד 9 ומוחקת את אלו שמתחלקים ב-3 (3,6,9)
using System; using System.Collections; namespace Tapuz { class ArrayListRemove { [STAThread] static void Main(string[] args) { ArrayList al = new ArrayList(new int[] {1,2,3,4,5,6,7,8,9}); for (int x = al.Count-1; x>=0; x--) { int i = (int)al[x]; if (i % 3 == 0) { al.Remove(i--); } } foreach (int i in al) { Console.Write(i); } Console.ReadLine(); } } }​
 

yuval k

New member
בדיוק מה שהוא אמר (--i כשמוחקים)

ובאמת, קצת סבלנות. אין צורך להזכיר לנו שאתה מחכה לתשובה אחרי פחות משעתיים.
 

asico

New member
תודה רבה לכם

בקשר לבקשה החוזרת, חשבתי שמכיוון שההודעה היתה למטה לא רואים אותה, ורציתי להקפיץ...
 

yuval k

New member
אין טעם להקפיץ אם ההודעה היתה בעמוד

הזה
 

asico

New member
מהי הצעתך?

?????????????????????????????????????????????????????????????????????
 
למעלה