قواعد المشاركة في المنتدى

(قسم الاعلانات) الموضوع:Ppc companies in Hyderabad بواسطة: (ppcservices786) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:كيفية ربط سي شارب مع اكسس 97 بواسطة: (وليد العمران) :: (منتدى Microsoft Excel) الموضوع:ادرارة سوبر ماركت بواسطة: (وليد العمران) :: (قسم الاعلانات) الموضوع:أهمية التمارين لصحة القلب بواسطة: (ضياء روحي) :: (قسم الاعلانات) الموضوع:ماكينة تعبئة خضروات مجمده الهندسيةستيل بواسطة: (ولاء عبدالقادر) :: (أخبار التكنولوجيا) الموضوع:FIRST MOVIE بواسطة: (رفيف الحياه) :: (قسم الاعلانات) الموضوع:افضل شركة نقل عفش بخميس مشيط 0555610603 بواسطة: (داليا عادل) :: (قسم الاعلانات) الموضوع:شركة مطابخ hpl- كرياتف جروب للاتصال 01026185183 بواسطة: (bery besho) :: (قسم الاعلانات) الموضوع:شركة مطابخ ارو ماسيف - كرياتف جروب للمطابخ - للاتصال 01203903309 بواسطة: (bery besho) :: (قسم الاعلانات) الموضوع:قائمة بالدورات المجانية لعام 2020 بواسطة: (bensamy) :: (قسم الاعلانات) الموضوع:الصيانة الدورية لمكيفات الهواء تحافظ عليها وتمنع الاعطال بواسطة: (كوين) :: (منتدى Microsoft Excel) الموضوع:برامج الاستثمار العقاري من اكفليكس بواسطة: (اكفليكس) :: (قسم الاعلانات) الموضوع:الحل المناسب للقضاء علي الحشرات الضارة بواسطة: (كوين) :: (قسم الاعلانات) الموضوع:احدث معدات مكافحة الحشرات المستوردة من الخارج بواسطة: (كوين) :: (قسم الاعلانات) الموضوع:إخفاء معالجة الرطوبة بواسطة: (taliajexx740) :: (أخبار التكنولوجيا) الموضوع:أفضل فني كهربائي منازل في الكويت بواسطة: (رفيف الحياه) :: (قسم التطوير والاقتراحات) الموضوع:أحاديث عن فضائل شهر رمضان بواسطة: (حسين محمدان) :: (أخبار التكنولوجيا) الموضوع:تحميل لعبة جاتا 4 Grand Theft Auto IV للكمبيوتر بواسطة: (Ahmedhk) :: (أخبار التكنولوجيا) الموضوع:شركة ديكورات وتشطيبات دارى للديكورات والتشطيبات بواسطة: (dinadary) :: (قسم التعاميم والشكاوي) الموضوع:تحزيم قاعدة بيانات أكسس 2013 بواسطة: (bkabd1975)

المواضيع المثبته: (منتدى Microsoft Visual Basic) الموضوع:الموضوع الشامل عن جهاز الباركود BarCode بواسطة: (Max Bayne) :: (منتدى ADO.NET العام) الموضوع:الكامل في قواعد البيانات مع VB.net بواسطة: (المهندس عدي) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:يجب المرور هنا للأهمية بواسطة: (وليد القدسي) :: (قسم الاعلانات) الموضوع:الرجاء عدم تكرار الاعلانات حتي يستفيد الجميع من المنتدي بواسطة: (startnet) :: (قسم النسخ والتحويل) الموضوع:برنامج تحويل قواعد البيانات العظيم بواسطة: (arabsboy) :: (منتدى الدعم الفني للماسنجر المحيط العربي) الموضوع:اقتراحات تطوير الماسنجر بواسطة: (jbsa) :: (منتدى الكتب و المقالات) الموضوع:أرغب فى تعلم Microsoft Access وإحترافه بواسطة: (Prince4ever) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:Serial Communication with Csharp بواسطة: (Prof.Mendl) :: (قسم الدروس و الدورات) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (منتدى برمجة التقارير) الموضوع:شرح طريقة اضافة تقرير Crystal Reports في الـ ASP.NET بواسطة: (FunctionSys) :: (منتدى مبرمجي ASP.NET) الموضوع:كيفية قرائة الصحف الإلكترونية والكتب والمجلات عبر الانترنت بواسطة: (عبدالله جابر شقليه) :: (منتدى الوورد والباور بوينت) الموضوع:عجائب و مهارات إستخدام برنامج " وورد " بواسطة: (مرحبا الساع) :: (منتدى برمجة الألعاب) الموضوع:مجموعة من مشاريع الالعاب بواسطة: (مصطفي البارودي) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:دورة في LINQ To DataSet بواسطة: (jbsa) :: (منتدى ال SQL العام) الموضوع:كتاب يشرح اساسيات SQL بواسطة: (محمد جمعة) :: (قسم البرامج الجاهزة و الاكواد) الموضوع:مشروع طبيب الاسنان مع السورس كود بواسطة: (ITPROGRAMMER) :: (قسم المواضيع المميزة) الموضوع:المحاسب المميز - الاصدار الثاني - محاسبة و مخازن بواسطة: (alalal) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:دورة تحزيم البرامج Setup & Deployment Applications by VS 2008 بواسطة: (Max Bayne) :: (منتدى برمجة الألعاب) الموضوع:أسس تصميم الألعاب ال3Dالتفاعلية بواسطة: (مصطفي البارودي) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:أساسيات تصميم الشبكات بواسطة: (مرحبا الساع)

إضافة رد إضافة موضوع جديد

> إستخدام BinarySearch مع Custom Object
Bookmark and Share
تقييم الموضوع Label معدل التقيم:0
مشاركةالسبت,09/ذو القعدة/1431 هـ,04:27 مساءً
المشاركة #1

المراقب العام
Joseph
الرتبة في المنتدى:عماد



المجموعة: الإدارة
المشاركات: 2893
سجل في:الاثنين,26/ربيع الأول/1427 هـ,07:49 صباحاً
الدولة:الأردن
رقم العضوية: 10102



سأوضح في هذا الموضوع كيفية إستخدام BinarySearch مع Custom objects.
في البداية سنعرف BinarySearch Method و استخداماتها :

BinarySearch Method

Binary Search هي algorithm معروفه للبحث و يمكننا استخدم دالة جاهزة مع الدوت نت مثل الـ One-dimensional Array و ArrayList و Generic Collections.

هناك اكثر من overload لهذه الميثود من أهمها

BinarySearch<T>(T[], T)


و

BinarySearch(Array, Object)



في مثالنا سنستخدم الOverload الاول الذي يستخدم IComparable<T> generic interface.

قبل أن أبدأ بالبحث بين ال Object سارفق مثال بسيط توضيحي لكيفية عمل هذه الميثود مع array of string

static void Main(string[] args)
        {
            string[] persons = { "Ahmad", "Yaser", "Belal" };
            Array.Sort(persons);
            //After sort will be { "Ahmad", "Belal", "Yaser" }
            int index = Array.BinarySearch(persons, "Yaser");

            if (index < 0)
            {
                Console.Write("Not found. ");
            }
            else
            {
                Console.WriteLine("Found at index {0}.", index);
            }
        }



نبدأ مثالنا بالخطوات التالية :
1- ننشأ الكلاس التالي:

public class Person
    {

        #region Constructor
        public Person(string first, string last)
        {
            FirstName = first;
            LastName = last;
        }
        #endregion 
        #region Properties
        public string  FirstName{set;get;}
        public string LastName { set; get; }        
        public string FullName
        {
            get
            {
                return FirstName + " " + LastName;
            }
        }
        #endregion 
    }


2- نعمل implement ل IComparable<T> generic interface.

الBinarySearch تستخدم CompareTo ضمن IComparable Interface بحث بهذه الدالة نحدد ما هو الشيئ الذي نريد ان نقارنه
في مثالنا نستطيع ان يكون وجه المقارنه FirstName او LastName او FullName.

الImplementation يكون كالتالي :

 public class Person:IComparable<Person>
    {

        #region Constructor
        public Person(string first, string last)
        {
            FirstName = first;
            LastName = last;
        }
        #endregion 
        #region Properties
        public string  FirstName{set;get;}
        public string LastName { set; get; }        
        public string FullName
        {
            get
            {
                return FirstName + " " + LastName;
            }
        }
        #endregion 
    
        #region IComparable<Person> Members

        public int CompareTo(Person other)
        {
            return this.FullName.CompareTo(other.FullName);
        }

        #endregion
    }



3- و اخيرا حتى نستخدم هذا الكود نعرف عدد من الObject من هذا الكلاس و نضعه داخل مصفوفه و نرتبها بستخدام Array.Sort بحيث اناه ايضا تستخدم CompareTo Method السابق للترتيب .



static void Main(string[] args)
        {

            Person ahmad = new Person("Ahmad", "bushnach");
            Person bassl = new Person("Bassl", "shadow");
            Person jehad = new Person("Jehad", "beginner");

            Person[] Brother = { jehad, ahmad, bassl };


            Person jehad2 = new Person("Jehad", "beginner");

            Array.Sort(Brother);

            int indexResult = Array.BinarySearch(Brother, jehad2);

            string outputMessage = string.Empty;
            if (indexResult < 0)
            {
                Console.WriteLine("The object to search  is not found. The next larger object is at index ." + ~indexResult);
            }
            else
            {
                Console.WriteLine("The object to search  is at index " + indexResult);
            }
           
        }



أرجو أن يكون المثال واضح و مفيد .
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالاثنين,11/ذو القعدة/1431 هـ,05:37 صباحاً
المشاركة #2

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 9
سجل في:السبت,19/رمضان/1431 هـ,02:27 صباحاً
الدولة:سوريا
رقم العضوية: 95866



شكرا يا أخ يوسف على الشرح الوافي لكن المشكلة التي أواجهها دائمأ هي في ; (Array.Sort(Brother

حيث يرمى Failed to compare two elements in the array ) : exception )


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالاثنين,11/ذو القعدة/1431 هـ,05:45 صباحاً
المشاركة #3

المراقب العام
Joseph
الرتبة في المنتدى:عماد



المجموعة: الإدارة
المشاركات: 2893
سجل في:الاثنين,26/ربيع الأول/1427 هـ,07:49 صباحاً
الدولة:الأردن
رقم العضوية: 10102



هذا الخطا يظهر اذا لم تكن عامل Implement لل IComparable Interface
لانه عند الترتيب و البحيث يستخدم CompareTo و اذا لم يجدها لا يستطيع المقارنه بين عناصر المصفوفه كما هو موضح بال exception السابق.

أرجو ان تكون النقطه واضحه.
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالاثنين,18/ذو القعدة/1431 هـ,02:27 صباحاً
المشاركة #4

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 9
سجل في:السبت,19/رمضان/1431 هـ,02:27 صباحاً
الدولة:سوريا
رقم العضوية: 95866



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


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالخميس,13/محرم/1433 هـ,12:23 مساءً
المشاركة #5

الرتبة في المنتدى:ملازم

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 50
سجل في:الخميس,13/محرم/1433 هـ,12:02 مساءً
الدولة:البارجواي
رقم العضوية: 99363



great work man


--------------------

برمجة وتصميم المواقع

programmer4ever@ yahoo.com
http://maktba.clanteam.com/

للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة

    

عدد المتصفحين لهذا المنتدى «1»: (الضيوف «1» - المتخفون «0»)
الأعضاء «0»: .

إضافة رد جديد إضافة موضوع جديد



 
الوقت الأن:اليوم,11:23 صباحاً بتوقيت القدس المحتلة

Powered By arabmoheet v3.1

منتديات المحيط العربي  -  راسلنا  -   أعلى
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)