PDA

View Full Version : حذف کردن آیتم های کمتر از 5 کاراکتر در لیست باکس



remower
سه شنبه 26 خرداد 1394, 11:08 صبح
سلام
تو لیست باکس به تعداد زیادی آیتم اعداد هست
میخام آیتم های زیر 5 رقمی را حذف کنه
یعنی بلفرض تو لیست باکس این ایتم ها باشه
12345
12
123
123456
1
33
4444
55555
میخام آیتم های کمتر از 5 رقمی خذف بشع
12
123
1
33
4444

nunegandom
سه شنبه 26 خرداد 1394, 11:41 صبح
سلام از Regex میتونی استفاده کنی
regexpattern:

[0-9]{5,}
اینجا میتونی تستش کنی و کد سیشارپ رو هم بگیری
(https://www.myregextester.com/index.php)

RmeXXXXXXXXX
سه شنبه 26 خرداد 1394, 12:01 عصر
مسلما داخل هیچ حلقه ای نمیتونی اینکار رو انجام بدین چونکه با حذف هر مورد، دامنه مجموعه (تعداد عناصر لیست) تغییر می کنند. پس داخل for نمیتونین و foreach هم این اجازه رو نمیده.
میشه یک مجموعه جدید (لیست کمکی) بسازید مثلاً از نوع List و با پیمایش عناصر موجود در لیست باکس، موارد مورد نظر را (بیشتر از 5 رقم) رو به لیست کمکی اضافه کرد و در پایان با لیست اصلی (عناصر لیست باکس) جایگزین کرد.

Mahmoud Zaad
سه شنبه 26 خرداد 1394, 12:40 عصر
سلام
به اینصورت، یه تابع داریم:

private void del()
{
for (int i = 0; i < listBox2.Items.Count; i++)
{
if (listBox2.Items[i].ToString().Length < 5)
{
listBox2.Items.Remove(listBox2.Items[i]);
del();
}
}
}

مثلا تو رویداد کلیک یه دکمه بنویس: del(); و تمام!