PDA

View Full Version : حرفه ای: مقایسه مقادیر دو لیست باکس



soroush.taheri
چهارشنبه 26 فروردین 1394, 22:31 عصر
سلام خدمت دوستان بزرگوار؛
بنده یک کدی نوشتم که مقادیر دو لیست باکس رو با هم مقایسه کنه. ولی همش اروری که پیوست هست رو دریافت می کنم.

در اینجا دو لیست باکس با نام های lsbKey و lsbSKey داریم و می خوایم هر وقت مقادیر دو تا از آیتم هاشون(مثلا اولین آیتم لیست باکس1 با اولین آیتم لیست باکس2) با هم برابر بود، به یک متغیر از نوع integer یک واحد اضافه می کنه و ...
کد:

int i;
string a, x;
for (i = 0; i <= Convert.ToInt32(lsbSKey.Items.Count); i++)
{
x = lsbKey.Items[i].ToString();
a = lsbSKey.Items[i].ToString();
if (x == a)
Program.t += 1;
else if (x != a)
Program.f += 1;
else
{
Program.n += 1;
}
}

همـااا
چهارشنبه 26 فروردین 1394, 23:08 عصر
کدات حرفه این من از بیشترشون سر درنمیارم !!!!! :لبخند: بجز دو سه خط اول ...
خب ... تو این دو سه خط اول ... تو قسمت شرطی که گذاشتی ( داخل حلقت )! یه ایراد هست ...

چرا i کوچیکتر مساوی ؟؟؟؟؟؟ یا مساوی رو بردار یا هم i رو از یک بگیر ... که تعداد حلقه یدونه بیشتر از تعداد ایتم هات نشه و خطای اوت او رنج نده ...

Mofid.m
چهارشنبه 26 فروردین 1394, 23:57 عصر
درود بر شما
1- شما نیازی نداری که Convert.toInt32 رو استفاده کنی چون خاصیت count لیست باکس از نوع int، ولی اشکال کدت این نیست.
2- همونطوری که دوستمون گفت چرا کوچکتر مساوی گذاشتی، علت خطا همینه چون از رنج میزنه بالا فقط > کافیه.
3- شما اگه تعداد لیست باکس اول با تعداد لیست باکس بدوم برابر نباشه بازم مشکل داری. منظورم کدت زمانی خطا نداره که هر دو لیست باکس تعداد آیتم هاش با هم برابر باشه. (البته اگر تعداد آیتم هایی lsbSKey بیشتر باشه بازم خطا نداری)
4- توی شرط ها هم مشکلی داری،(ولی خطا نداری) شرط else شما هیچ وقت اجرا نمیشه چون یا برابر هست یا نیست. در صورت برابر بودن شرط اول اجرا میشه و در صورت برابر نبودن شرط دوم. پس شرط سوم هیچ وقت اجرا نمیشه.

soroush.taheri
پنج شنبه 27 فروردین 1394, 10:45 صبح
درود بر شما
1- شما نیازی نداری که Convert.toInt32 رو استفاده کنی چون خاصیت count لیست باکس از نوع int، ولی اشکال کدت این نیست.
2- همونطوری که دوستمون گفت چرا کوچکتر مساوی گذاشتی، علت خطا همینه چون از رنج میزنه بالا فقط > کافیه.
3- شما اگه تعداد لیست باکس اول با تعداد لیست باکس بدوم برابر نباشه بازم مشکل داری. منظورم کدت زمانی خطا نداره که هر دو لیست باکس تعداد آیتم هاش با هم برابر باشه. (البته اگر تعداد آیتم هایی lsbSKey بیشتر باشه بازم خطا نداری)
4- توی شرط ها هم مشکلی داری،(ولی خطا نداری) شرط else شما هیچ وقت اجرا نمیشه چون یا برابر هست یا نیست. در صورت برابر بودن شرط اول اجرا میشه و در صورت برابر نبودن شرط دوم. پس شرط سوم هیچ وقت اجرا نمیشه.

1- با این نظرتون موافقم برای پیشگیری از بروز خطا از کلاس Convert استفاده کردم.
2-3- حق با شماست. در نوشتن کد به این موضوع دقت نکرده بودم.
4- متوجه منظورتون شدم. باید از یک if دیگه استفاده کنم.

با سپاس فراوان از شما دوست گرامی