PDA

View Full Version : چگونه می توان آیتم هایی که با فضای خالی ایجاد شده اند را اصلاح کرد ؟



dele_ghamgin_2008
یک شنبه 06 مهر 1393, 02:39 صبح
سلام . من لیست باکسی دارم که توش مقداری آیتم وجود دارد . بعضی از آیتم ها در ابتدای عبارت با چندتا اسپیس آغاز می شوند . چگونه می توانم اسپیس های آغازی این آیتم ها رو از لیست باکس پاک کنم تا به شکل عادی تبدیل شود ؟

فقط می خوام آیتم هایی که با فضای خالی شروع شده اند رو درست کنه . نمی خوام آیتم هایی که در وسط کلمه ، اسپیس داره رو بهم بچسبونده.

نمونه :

"ali "
"javad "

میخوام اینجوری بشن :

"ali"
"javad"

Mori Bone
یک شنبه 06 مهر 1393, 09:00 صبح
for (int i = 0; i < listBox1.Items.Count; i++)
{
listBox1.Items[i] = listBox1.Items[i].ToString().Trim();
}

dele_ghamgin_2008
یک شنبه 06 مهر 1393, 18:09 عصر
for (int i = 0; i < listBox1.Items.Count; i++)
{
listBox1.Items[i] = listBox1.Items[i].ToString().Trim();
}


سلام . مرسی . ولی این دستور کار نکرد . یعنی وقتی این دستور رو اجرا می کنه ، برنامه متوقف می شه و کار نمی کنه.

dele_ghamgin_2008
یک شنبه 06 مهر 1393, 18:16 عصر
for (int i = 0; i < listBox1.Items.Count; i++)
{
listBox1.Items[i] = listBox1.Items[i].ToString().Trim();
}


درست شد مرسی . من کد رو توی جای بدی استفاده کرده بودم . مرسی عزیز . لایک داری

dele_ghamgin_2008
جمعه 11 مهر 1393, 19:19 عصر
دوستان دیگه دارم دیوانه می شوم . توروخدا یکی کمکم کنه . همینکه یکم جلو میرم باز به مشکل جدید می خورم . یه برنامه براتون پیسوت کردم بازش کنید و ببینید مشکلش چیه ؟
دوتا باتن دارم . با یک لیست باکس . داخل لیست باکس یک سری آیتم هست . کار باتن اول اینه که تمامی حروف های موجود در آیتم های لیست باکس رو کچک میکنه . یعنی تبدیل به حروف کوچیک میکنه . کار باتن دوم اینه که اساسمی تکراری از لیست باکس رو حذف میکنه .

هر کدوم از این باتن ها به تنهایی کار خودشون رو خوب انجام می دهند . ولی مشکل اینجاست . وقتی باتن اول رو کلیک می کنم و بعشد باتن دوم رو کلیک میکنم که اسامی تکراری رو هم حذف کنه برنامه هنگ میکنه. نمونه کد رو براتون در زیر فرستادم . لطفاً کمکم کنید . که مشکل از کجاست ؟
ضمناً باتن 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;
}

Mori Bone
جمعه 11 مهر 1393, 19:27 عصر
var uniqueItems = listBox1.Items.Cast<string>().Distinct().ToList();
listBox1.DataSource = null;
listBox1.Items.Clear();
listBox1.Items.AddRange(uniqueItems.ToArray());
uniqueItems.Clear();
uniqueItems = null;

dele_ghamgin_2008
جمعه 11 مهر 1393, 19:31 عصر
var uniqueItems = listBox1.Items.Cast<string>().Distinct().ToList();
listBox1.DataSource = null;
listBox1.Items.Clear();
listBox1.Items.AddRange(uniqueItems.ToArray());
uniqueItems.Clear();
uniqueItems = null;


درست شد مهندس . خیلی خیلی متشکرم. ممنون از پاسخ به موقع شما.

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