سؤال

هل هناك طريقة لإزالة عنصر من مربع القائمة على أساس سلسلة؟

ولقد لعب حولها لبضع دقائق وهنا ما لدي حتى الآن ولكن لا يعمل

foreach(string file in LB_upload.Items)
{
    ftp.Upload(file);
    int x = LB_upload.Items.IndexOf(file);
    LB_upload.Items.RemoveAt(x);
}

ويمكن أن أقوله حلقة فقط من خلال كل عنصر ولكن أردت أن تفعل شيئا قليلا أكثر أناقة

هل كانت مفيدة؟

المحلول

while(LB_upload.Items.Count > 0)
{
  ftp.Upload(LB_upload.Items[0].ToString());
  LB_upload.Items.RemoveAt(0);
}

نصائح أخرى

وبناء على المثال الخاص بك، كنت تفعل شيء من هذا القبيل؛


foreach(string file in LB_upload.Items)
{
  ftp.Upload(file);
}
LB_upload.Items.Clear();

والمشكلة انك ربما تواجه هي أنك تغيير القائمة بينما بالتكرار عبر هذا. هذا هو كبير لا لا، وتمت تغطية إعلانية nauseum على هذا الموقع.

واستنادا إلى عنوان سؤالك هذا يبدو وكأنه كنت لا تريد لإزالة كل بند من البنود، فقط بعض منهم. إذا كان هذا هو الحال:

for (int i = LB_upload.Items.Count - 1; i >= 0; i--)
{
    if (somecondition)
    {
        ftp.Upload(LB_upload.Items[i]);
        LB_upload.Items.RemoveAt(i);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top