PDA

View Full Version : سوال: جستجو در لیست در #C



silvery
جمعه 11 فروردین 1391, 09:41 صبح
سلام من یه لیست دارم كه با یه سری عدد پر شده.میخوام وقتی یه عدد وارد تكس باكس میكنم و روی یه دكمه كلیك میكنم بیاد داخل لیست رو بگرده اگه عدد وجود داره اطلاع بده وگرنه اونو به لیست اضافه كنه.چه كدی براش بنویسم؟در ضمن عدداش چند رقمیه یعنی باید تك تك رقماش مقایسه بشه.

masoudmok
جمعه 11 فروردین 1391, 11:06 صبح
سلام
اگه بگی لیستتو کجا ذخیره میکنی راحت تر میشه کمک کرد . توی آرایه یا لیست پیوندی یا list یا combobox یا ... ؟

Hybrid
جمعه 11 فروردین 1391, 14:10 عصر
سلام ، یک نمونه واستون نوشتم ببین همین منظورت بود :

silvery
شنبه 12 فروردین 1391, 21:43 عصر
سلام
اگه بگی لیستتو کجا ذخیره میکنی راحت تر میشه کمک کرد . توی آرایه یا لیست پیوندی یا list یا combobox یا ... ؟

راستش من خيلي مبتدي ام.واسه همين خيلي از دستورا رو نميفهمم.خودم كد زير رو نوشتم .ليستمو داخل list ذخيره كردم....برنامه از كد زير هيچ خطايي نميگيره اما كاريم انجام نميده


private void button1_Click(object sender, EventArgs e)
{
int tL = textBox1.Text.Length;
int tt = int.Parse(textBox1.Text);
int j1 = 0;
int j2 = 0;
int j3 = 0;
for (int i = 0; i < listBox1.Items.Count; i++)
{
int LL = listBox1.Items[i].ToString().Length;
int li = Convert.ToInt32(listBox1.Items[i]);

if (LL == tL)
{
while (li > 0)
j1 = li % 10;
li /= 10;
j2 = tt % 10;
tt /= 10;
if (j1 == j2)
j3++;
}
if (j3 == LL)
MessageBox.Show("كد كوجود است");
else
listBox1.Items.Add(textBox1.Text);
}
}

silvery
شنبه 12 فروردین 1391, 21:45 عصر
سلام ، یک نمونه واستون نوشتم ببین همین منظورت بود :

ممنونم اما منظورم اين نبود

Hybrid
شنبه 12 فروردین 1391, 22:08 عصر
ممنونم اما منظورم اين نبود

لازم نیست لقمه رو پشت سر بچرخونین !!

واسه عدد خوب هم میشه استفاده کرد با روش مشابه ، منظورتون دقیقا چیه؟

silvery
یک شنبه 13 فروردین 1391, 07:22 صبح
لازم نیست لقمه رو پشت سر بچرخونین !!

واسه عدد خوب هم میشه استفاده کرد با روش مشابه ، منظورتون دقیقا چیه؟
اين برنامه اي كه گذاشتين رو من قبلا نوشتم اما وقتي محتواي تكس باكسم چند كاراكتري باشه بهم جواب درست نميده..اون برنامه ايم كه اول نوشتين شايد درست باشه اما مشكل اينجاست كه من خييييييييلي مبتديم.واسه همين ازش سر در نياوردم:خجالت:

Hybrid
یک شنبه 13 فروردین 1391, 08:27 صبح
سلام ، منظورتون از


چند كاراكتري باشه بهم جواب درست نميده

چیه ؟ خوب واسه عدد های چند رقمی هم به خوبی جواب میده ، شما هر اشکالی دارین بپرسین در خدمتم ، هر جایی از کد رو که متوجه نمیشین Highlight کن تا من یا دوستان واستون توضیح بدیم.

rahdar
یک شنبه 13 فروردین 1391, 15:16 عصر
اگه منظورتون عدد در بین آیتم های لیسته میشه برنامه زیر
ازین راحتتر فکر نکنم بشه


int n;
n = int.Parse(textBox1.Text);
if (listBox1.Items.IndexOf(n) < 0)
{
listBox1.Items.Add(n);
}
else
{
MessageBox.Show("عدد موجود است");
}



اما با توجه به کدی که نوشتید. عدد رو داخل متن اعداد گزینه های لیست هم می گردید
در کدی که شما نوشتید فکر کنم بلوک while رو تعیین نکردید چون { } نزاشتید فقط خط بعد از while جزء بلوک while است
یه } یزارید بعد از while یه { هم بزارید قبل از if آخر
فکر کنم برنامتون اونی بشه که می خوایید
البته میشه یه حقه ساده هم زد که بعید بدونم هدف از طرح سوال باشه
با این میشه فهمید عددی n در عدد m وجود داره یا نه


int n, m;
string ms = m.ToString();
if(ms.Contains(n.ToString()))
MessageBox.Show("موجود");