PDA

View Full Version : مرتب سازی یک لیست رشته ای از کوچکتر به بزرگتر



sara_aryanfar
جمعه 14 آذر 1393, 19:03 عصر
با سلام خدمت دوستان تصور کنید ما یک لیست رشته ای داریم که در داخل اون رشته هایی با اندازه متفاوت به طور نا مرتب قرار دارند حالا می خواهیم لیست جدیدی تشکیل دهیم که در آن عناصر از کوچکتر به بزرگتر مرتب شده باشند ممنون میشم دوستان راهنمایی کنند

A.S.Roma
جمعه 14 آذر 1393, 19:14 عصر
مرتب سازی بر اساس حروف الفبا یا تعداد کاراکتر !؟

sara_aryanfar
جمعه 14 آذر 1393, 19:50 عصر
نه ببینید ما لیستمون این هست مثلا

abc
a
abbx
ththgf

حالا می خواهیم به این صورت مرتب بشه
a
abc
abbx
ththgf

dele_ghamgin_2008
جمعه 14 آذر 1393, 19:54 عصر
نه ببینید ما لیستمون این هست مثلا

abc
a
abbx
ththgf

حالا می خواهیم به این صورت مرتب بشه
a
abc
abbx
ththgf


private void BtnSort1_Click(object sender, EventArgs e) {
LstIn1.Sorted = false;

// مرتب کردن لیست باکس بر اساس تعداد کلمات هر آیتم از زیاد به کم
// var source = LstIn1.Items.Cast<Object>().ToList();
// LstIn1.DataSource = source.OrderByDescending(i => i.ToString().Split(' ').Count()).ToList();

// مرتب کردن لیست باکس بر اساس تعداد کلمات هر آیتم از کم به زیاد
for (int i = 0; i < LstIn1.Items.Count; i++)
{
int min = i;
for (int j = i; j < LstIn1.Items.Count; j++)
{
if (LstIn1.Items[min].ToString().Length > LstIn1.Items[j].ToString().Length)
{
min = j;
}
}
LstIn1.Items.Insert(i, LstIn1.Items[min].ToString());
LstIn1.Items.RemoveAt((min + 1));
}

}

اگر یادتون باشه من و شما از سال 90 دنبال ساخت اسپمر بودیم . جالبته هردومین الان داریم برنامه ای می سازیم که به این کد نیاز داریم . اینبار من کمکتون می کنم . چون قبلاً بهم کمک زیادی کرده بودی . امیدوارم موفق باشید

A.S.Roma
جمعه 14 آذر 1393, 20:01 عصر
همچین چیزی !؟
static void Main(string[] args)
{
List<string> z = new List<string>()
{
"abc","a","abb","thkajdfh"
};
List<string> y = new List<string>();




y.AddRange(z.OrderBy(x => x, new Comparer()));
foreach (var item in y)
{
Console.WriteLine(item);
}
}
}


public class Comparer : IComparer<string>
{
public int Compare(string x, string y)
{
var ret = x.Length - y.Length;
if (ret != 0)
return ret;
return string.Compare(x, y);
}
}

sara_aryanfar
جمعه 14 آذر 1393, 20:24 عصر
با سپاس از مشارکت دوستان چنین نوشتم


List<string> moratabsaji = new List<string>();
moratabsaji.AddRange( hh.OrderBy(x => x.Length));

A.S.Roma
جمعه 14 آذر 1393, 21:28 عصر
اینجوری اگر طول دو تا String برابر باشه خواستتون برآورده نمیشه
واسه همین من Comparer سفارشی نوشتم :)