PDA

View Full Version : سوال: مرتب سازي در listBox



bghad1
جمعه 13 فروردین 1389, 01:04 صبح
سلام خدمت همه دوستاي عزيز..
يه سوال داشتم...
براي اينكه يه ليست باكس رو سورت كنيم (به ترتيب اعداد)، بايد چيكار كنيم؟
از توي msdn فهميدم كلياتش رو ...
اما موقعي كه مي خوايم sort كنيم ، اگه از عدد 1 داشته باشيم تا مثلا 100 ، به اين صورت sort ميشه ::
1
10
11
12
13
14
15
16
17
18
19
2
21
22
23
و الي آخر....

چيكار كنم كه درست بياد اينجوري نمايش بده ::
1
2
3
4
5
6
7
8
9
10
11
12
و ... ؟؟
ممنون از توجهتون...:قلب:

FastCode
جمعه 13 فروردین 1389, 01:26 صبح
نوع داده ای که insert میکنید مهمه.

bghad1
جمعه 13 فروردین 1389, 01:47 صبح
ميشه بيشتر توضيح بدين لطفاً؟
من همه ي داده هام ، يكي هستن و عين هم هستن و فرقي با هم ندارن...تنها فرقشون در زمان insert شدن داخل ليست باكس هست كه حدوداً هر 10 تاش با هم 10-20 ميلي ثانيه فاصله دارن!

ميشه راهنمايي كنين؟

Mahdi.Kiani
جمعه 13 فروردین 1389, 09:13 صبح
سلام
می توانید از یکی ازدو روش زیر که همینک به ذهنم رسید استفاده کنید
1) ایجاد یک کلاس مشتق شده از ListBox و override کردن متد Sort آن.
2)بهره گیری از LINQ و Cast کرن نوع داده های ListBox به نوع حقیقی آن ها و فراخوانی متد های OrderBy و یا OrderByDescending

Salar Ashgi
جمعه 13 فروردین 1389, 10:48 صبح
یه مثالی میزنم ، ممکنه بهترین نباشه :



List<int> list = new List<int>();
foreach (object obj in listBox1.Items)
{
list.Add(Convert.ToInt32(obj));
}
listBox1.Items.Clear();
list.Sort();
foreach (int i in list)
{
listBox1.Items.Add(i.ToString());
}


عکس ها هم واضحه !

mohammad diba
جمعه 13 فروردین 1389, 10:57 صبح
دوست عزیز اون مرتب سازی رشته ای هست شما باید داده ها رو تویه یک آرایه عددی بریزی اونا را با یه الگوریتمی مثلا حبابی مرتب کنی سپس تویه لیست قرار بدی