منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طريقة الفرز داخل مربع النص
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

عندي فورم يوجد فيه 14 مربع نص (اسعار) واريد فرز الارقام من الاقل الى الاعلى وايضا بجانب مربع النص ( الاسعار) مربع نص اخر ( اسماء ) 

احتاج عند الفرز يفرز الارقام والاسماء  من الاقل الى الاعلى  ماهي الطريقة اتمنى منكم افادتي ؟؟
اعمل مثال صغير و ارفعه

عموما ممكن تستخدم Generic Sorted Dictionary وتضيف لها البيانات الموجودة في مربع النص الخاص بالاسعار و هو سيتكفل بعملية الترتيب اتوماتيكيا
وبنفس الاسلوب تتعامل مع مربعات النص الخاصة بالأسماء
شكرا على تجاوبك معي اخي 
لم استطيع اضافة المرفقات 
ولكن ارفقت صورتين 

ماهو الكود الذي سيرتب السعر الاقل الى الاعلى 
داخل مربعات النص
https://a.top4top.net/p_557axkar1.jpg
 
https://f.top4top.net/p_557hu3p20.jpg
استخدم SortedDictionary
,
PHP كود :
Dim bucket New SortedDictionary(Of StringString) () 

أو الافضل تستخدمها بالشكل التالي
لأنك محتاج الأرقام مرتبة من الأصغر للأكبر
مرر الرقم من التكست بوكس ومعه اسم التكست بوكس مثلا

PHP كود :
Dim bucket New SortedDictionary(Of IntegerString) () 

أو يمكنك أن تستخدم SortedList للحصول علي الأرقام فقط
وتضيف لها الأرقام الموجودة في التكست بوكس فتحصل علي مصفوفة مرتبة تصاعديا


PHP كود :
Dim sl As New SortedList() 
حسب طلبك لا ينفع استخدام Dictionary أو SortedDictionary لأنها تعتمد على Key والذي لا يقبل تكرار قيمة، بمعنى يرفض أن تضع فيه قيمة مشابهة

جرب الكود
PHP كود :
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click

        Dim Items 
As New List(Of Item)

        
Items.Add(New Item With {.Price Val(TextBox1.Text), .Company TextBox2.Text})
        
Items.Add(New Item With {.Price Val(TextBox3.Text), .Company TextBox4.Text})
        
Items.Add(New Item With {.Price Val(TextBox5.Text), .Company TextBox6.Text})
        
Items.Add(New Item With {.Price Val(TextBox7.Text), .Company TextBox8.Text})

        
Dim SortedItems As List(Of Item) = Items.OrderByDescending(Function(itemitem.Price).ThenBy(Function(itemitem.Company).ToList

        TextBox1
.Text SortedItems(0).Price
        TextBox2
.Text SortedItems(0).Company

        TextBox3
.Text SortedItems(1).Price
        TextBox4
.Text SortedItems(1).Company

        TextBox5
.Text SortedItems(2).Price
        TextBox6
.Text SortedItems(2).Company

        TextBox7
.Text SortedItems(3).Price
        TextBox8
.Text SortedItems(3).Company

    End Sub

    
Private Class Item
        
Public Company As String
        
Public Price As Single
    End 
Class 

تم استخدام OrderByDescending للترتيب الأول وThenByوليس ThenByDescending للترتيب التالي لأننا نرتيب ترتيب حسب الأبجدية لأسماء الشركات في حال تشابة قيمتها
Descending هي للترتيب الكبير للصغير وThenBy هي اختيارية

في النهاية نحول النتيجة الى ToList لأن المتغير نوعه List Of
(11-07-17, 07:41 PM)mstfa1991 كتب : [ -> ]حسب طلبك لا ينفع استخدام Dictionary أو SortedDictionary لأنها تعتمد على Key والذي لا يقبل تكرار قيمة، بمعنى يرفض أن تضع فيه قيمة مشابهة

جرب الكود
PHP كود :
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click

        Dim Items 
As New List(Of Item)

 
       Items.Add(New Item With {.Price Val(TextBox1.Text), .Company TextBox2.Text})
 
       Items.Add(New Item With {.Price Val(TextBox3.Text), .Company TextBox4.Text})
 
       Items.Add(New Item With {.Price Val(TextBox5.Text), .Company TextBox6.Text})
 
       Items.Add(New Item With {.Price Val(TextBox7.Text), .Company TextBox8.Text})

 
       Dim SortedItems As List(Of Item) = Items.OrderByDescending(Function(itemitem.Price).ThenBy(Function(itemitem.Company).ToList

        TextBox1
.Text SortedItems(0).Price
        TextBox2
.Text SortedItems(0).Company

        TextBox3
.Text SortedItems(1).Price
        TextBox4
.Text SortedItems(1).Company

        TextBox5
.Text SortedItems(2).Price
        TextBox6
.Text SortedItems(2).Company

        TextBox7
.Text SortedItems(3).Price
        TextBox8
.Text SortedItems(3).Company

    End Sub

    Private 
Class Item
        Public Company 
As String
        Public Price 
As Single
    End 
Class 

تم استخدام OrderByDescending للترتيب الأول وThenByوليس ThenByDescending للترتيب التالي لأننا نرتيب ترتيب حسب الأبجدية لأسماء الشركات في حال تشابة قيمتها
Descending هي للترتيب الكبير للصغير وThenBy هي اختيارية

في النهاية نحول النتيجة الى ToList لأن المتغير نوعه List Of
 
انا كنت احاول اعملها في مصفوفه ولكن اتوقع انه طريقتك افضل 
نعم الكودد يعمل بنجاح والحمدالله  وشكرا لك استفدت منكم جميعا  انت والاخ سيلفر