PDA

View Full Version : یافتن تعداد مقادیر تکراری از لیست باکس



dele_ghamgin_2008
یک شنبه 06 مهر 1393, 01:22 صبح
سلام . من 3 تا لیست باکس دارم . لیست باکس اول شامل همه اعضا همراه با تکرار می باشد .
فرض کنید آیتم های لیست باکس اول برابر است با :
علی
علی
رضا
احمد
احمد


آیتم لیست باکس دوم برابر است با :
علی
رضا
احمد

حال می خواهم وقتی روی آیتم های لیست باکس دوم کلیک کردم ، بهم بگه که این آیتم چندبار در لیست باکس اول آمده است ؟ این تعداد را می خواهم در لیست باکس سوم به عنوان آیتم درج کند . ممنون می شوم کمکم کنید دوستان. خیلی برام مهم و فوریه

mohammad272005
یک شنبه 06 مهر 1393, 01:27 صبح
var itemCount = listbox1.Items.Cast<string>().Where(item=>item == listbox2.SelectedItem.ToString()).Count();
کد رو همینجا نوشتم. ایشالا که اشکالی نداره. itemCount حاوی تعداد دفعات آیتم انتخاب شده در listbox2 از listbox1 هست.

dele_ghamgin_2008
جمعه 11 مهر 1393, 19:50 عصر
var itemCount = listbox1.Items.Cast<string>().Where(item=>item == listbox2.SelectedItem.ToString()).Count();
کد رو همینجا نوشتم. ایشالا که اشکالی نداره. itemCount حاوی تعداد دفعات آیتم انتخاب شده در listbox2 از listbox1 هست.

کد شما هم صحیح است ولی سرعت سیستم رو خیلی کند میکنه . یعنی چون تعداد آیتم هام خیلی زیاد هست ، دستور شما زمان زیادی رو صرف میکنه یا مقادیر رو برام پیدا کنه . لذا خودم کدی را نوشتم و از آن استفاده می کنم زیرا دارای سرعت خیلی بالایی است . فقط به مشکلی خوردم . و آن هم اینه که وقتی دو مقدار تکراری پشت سر هم در لیست باکس 2 وجود داشته باشد ، حرکت جستجو متوقف می شود . آیا راه حلی پیشنهاد می کنید ؟

کد :

int counter = 0; foreach (string s in LstAll.Items)
{
if (s == txtName.Text)
counter++;
}
LstCount.Items.Add(counter);