PDA

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



aradrobo
پنج شنبه 12 مرداد 1391, 12:59 عصر
سلام.
چگونه می توانم آیتم های تکراری یک لیست باکس را حذف نمایم ؟

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

یعنی اگر آیتم ها به صورت زیر بود :
111
222
333
111

پس از کلیک روی باتن ، باید لیست باکس به صورت زیر تبدیل شود :
222
333

یعنی 111 که دوبار تکرار شد کلاً هر دو از بین برود و اگر 10 بار هم تکرار می شد ، باید هر 10 تا از بین برود .

منتظر کمک شما هستم . با تشکر

lvlaziar
پنج شنبه 12 مرداد 1391, 13:27 عصر
بفرما فقط کافیه 2تا لیست باکس بزاری و یه تایمر! ( البته نیازیم ب دو تا نیست ولی خب ب هر حال! :قهقهه:)

private void sortT_Tick(object sender, EventArgs e)
{
try
{
if (this.lb4.SelectedIndex == (this.lb4.Items.Count - 1))
{
this.sortT.Enabled = false;
MessageBox.Show("All RePetiTivE ItemS had BeeN CleareD!\rThere Is " + Conversions.ToString(this.rep) + " RePetiTivE ItemS!!!", "RePetiTivE ClearIng InfO:", MessageBoxButtons.OK, MessageBoxIcon.Information);
groupBox11.Text = "ResUlT: " + this.lbr.Items.Count.ToString();
this.Enabled = true;
}
else
{
this.lb4.SelectedIndex++;
this.lbr.SelectedItem = this.lb4.Text;
if (this.lbr.SelectedIndex == -1)
{
this.lbr.Items.Add(this.lb4.Text);
}
else
{
this.lbr.SelectedIndex = -1;
this.rep++;
}
}
}
catch
{
}
}

متغیر rep از نوع int و مقدار اولیه هم 0 بزار!
با یکم دستکاری ب نتیجه مورد نظر میرسی!
خوش باشید!:قلب:

Mahmoud.Afrad
پنج شنبه 12 مرداد 1391, 19:46 عصر
بفرما فقط کافیه 2تا لیست باکس بزاری و یه تایمر!
برای چی تایمر؟!!!!
نهایتا با یه حلقه انجام میشه گرچه راههای بهتری هم هست.

این کد که با LINQ نوشته شده این کارو انجام میده.
List<string> items;
private void button1_Click(object sender, EventArgs e)
{
items = listBox2.Items.Cast<string>().ToList();
listBox1.DataSource = items.Where(i => items.Count(j => j == i) == 1).ToArray();
}

aradrobo
شنبه 14 مرداد 1391, 12:41 عصر
برای چی تایمر؟!!!!
نهایتا با یه حلقه انجام میشه گرچه راههای بهتری هم هست.

این کد که با LINQ نوشته شده این کارو انجام میده.
List<string> items;
private void button1_Click(object sender, EventArgs e)
{
items = listBox2.Items.Cast<string>().ToList();
listBox1.DataSource = items.Where(i => items.Count(j => j == i) == 1).ToArray();
}

متشکرم . درست کار کرد