دوستان دیگه دارم دیوانه می شوم . توروخدا یکی کمکم کنه . همینکه یکم جلو میرم باز به مشکل جدید می خورم . یه برنامه براتون پیسوت کردم بازش کنید و ببینید مشکلش چیه ؟
دوتا باتن دارم . با یک لیست باکس . داخل لیست باکس یک سری آیتم هست . کار باتن اول اینه که تمامی حروف های موجود در آیتم های لیست باکس رو کچک میکنه . یعنی تبدیل به حروف کوچیک میکنه . کار باتن دوم اینه که اساسمی تکراری از لیست باکس رو حذف میکنه .
هر کدوم از این باتن ها به تنهایی کار خودشون رو خوب انجام می دهند . ولی مشکل اینجاست . وقتی باتن اول رو کلیک می کنم و بعشد باتن دوم رو کلیک میکنم که اسامی تکراری رو هم حذف کنه برنامه هنگ میکنه. نمونه کد رو براتون در زیر فرستادم . لطفاً کمکم کنید . که مشکل از کجاست ؟
ضمناً باتن 1 دوکار رو انجام میده . هم حروف رو کوچیک میکنه . و هم اگر آیتمی با اسپیس شروع بشه ، اسپیس های اضافی اول عبارت از هر آیتم رو پاک میکنه.
برای نمونه . مقدار زیر در لیست باکس وجود دارد :
taliatalia
talia
Talia
talia
Talia
ali
javad
Ali
Ali
private void button1_Click(object sender, EventArgs e) {
// اگر آیتمی از لیست باکس دارای اسپیس آغازین باشه ، اونو درست میکنه
for (int i = 0; i < listBox1.Items.Count; i++)
{
listBox1.Items[i] = listBox1.Items[i].ToString().Trim();
}
//تبدیل حروف بزرگ به کوچیک
listBox1.DataSource = (listBox1.Items.Cast<String>().Select(i => i.ToLower())).ToList();
// از حالت انتخاب آیتم ، خارج میکنه
listBox1.SelectedIndex = -1;
}
private void button2_Click(object sender, EventArgs e)
{
//حذف تکراری ها از لیست جزء
var uniqueItems = listBox1.Items.Cast<string>().Distinct().ToList();
listBox1.Items.Clear();
listBox1.Items.AddRange(uniqueItems.ToArray());
uniqueItems.Clear();
uniqueItems = null;
}