PDA

View Full Version : حذف نام های تکراری در کی تکست باکس با اسپلیت



asd313
یک شنبه 13 مرداد 1392, 17:03 عصر
به نام خدا

دوستان سلام

طاعاتتون مورد قبول درگاه حق باشه دوستان سوالم بنظرم روشنه چیه ولی میخوام بیشتر توضیح بدم تا همه متوجه بشید فقط از همه کسایی که میخوان جواب بدن روشن جواب بدن و با کد توضیح دقیق بدن تا من متوجه بشم (بی زحمت با کد و دقیق بگید که مثلا فلان جا چی شده و . . . )

من هر کاری کردم نشد

و اما سوال :

فرض کنید شما توی یه تکست باکس 1 اینارو داریم (اسپلیتشون با # هستش)


esm1#esm2#esm3#esm4#esm5#esm1#esm1

حالا من میخوام این اسامی رو بگیرم و در تکست باکس دو و لیست باکس 1 اضافه کنم منتها تکراریا حذف بشن یعنی توی لیست باکس بشه :

esm1
esm2
esm3
esm4
esm5

و توی تکست باکس دو بشه :


esm1#esm2#esm3#esm4#esm5

من باید چیکار کنم؟ لطفا جواب بدید دقیق بی زحمت خیلی خیلی فوریه ! ممنون

تشکر یا حق

llMMDll
یک شنبه 13 مرداد 1392, 17:23 عصر
سلام
از متد split استفاده کن یک آرایه از string بهت میده
بعد میتونی بریزی تو یک list و با متد intersect تکراری ها رو حذف کنی
دوستان اگر روش بهتری دارند اضافه کنند

Amin69
یک شنبه 13 مرداد 1392, 18:07 عصر
سلام.
این یه نمونه کد:

string[] text = textBox1.Text.Split('#');
for (int i = 0; i < text.Length; i++)
{
bool repet = false;
for (int j = 0; j < listBox1.Items.Count; j++)
{
if (listBox1.Items[j] == text[i])
repet = true;
}
if (repet == false)
{
listBox1.Items.Add(text[i]);
textBox2.AppendText(text[i] + "#");
}
}

خط اول میاد و متن تکست باکس رو اسپلیت میکنه توی آرایه text
بعد به ازای تمام عناصر این آرایه، اول با یه حلقه چک میکنه که عنصر جاری توی لیست ذخیره شده یا نه؛ که اگه تکراری نبود، عنصر رو توی لیستباکس و تکستباکس 2 ذخیره میکنه. توضیحات کافیه؟!
یا علی

tooraj_azizi_1035
یک شنبه 13 مرداد 1392, 19:36 عصر
string names[]="esm1#esm2#esm3#esm4#esm5#esm1#esm1".Split('#');
listBox1.Items.AddRange(names.Distinct().ToArray() );
textBox2.Text=string.Join("#", names.Distinct());

asd313
دوشنبه 14 مرداد 1392, 06:05 صبح
ممنون از توضیحاتتو تشکر ولی دوستان من طبق راهنماییاتون پیش رفتم اما تکراری ها رو که حذف نکرد ؟(چرا؟)
میخوام که تکراریا به صورت حذف شده توی تکست باکس دو و لیست باکس اضافه بشن

یعنی اگه چند بار esm1 رو دادیم ، برنامه فقط یکیشونو بگیره به لیست باکس و تکست باکس اضافه کنه و بقیه هم که تکرار نشدن رو هم اضافه کنه

ممنون

helpsos
دوشنبه 18 شهریور 1392, 17:33 عصر
سلام
ببین من قبلا می خواستم که شماره های موبایل تکراریه وارد شده در یه تکست باکس را حذف کنم و از روش زیر استفاده کردم ببین به دردت می خوره؟

//using System.Linq;
string[] mobnum = txtMobileNumber.Text.Split(',');
var MobileNumber = mobnum.Distinct();// حذف شماره های تکراری
txtMobileNumber.Text = "";

foreach (string item in MobileNumber)
{
txtMobileNumber.Text+=item.ToString()+",";
}

farhad.k.t
دوشنبه 18 شهریور 1392, 21:10 عصر
همان کدی که یکی از دوستان گفتند با کمی تغییرات امتحان کردم ، جواب داد:
string a = "esm1#esm2#esm3#esm4#esm1#esm2";
string[] b = a.Split('#');
foreach (string item in b)
{
if (!listBox1.Items.Contains(item ) )
{
listBox1.Items.Add(item);
textBox2.AppendText(item + "#");
}
}
این کد اول بررسی می کند که item در لیست باکس هست یا خیر،اگه نبود آیتم را به لیست باکس و تکست باکس اضافه می کند.