أنواع مجموعة الحروف

الفئة System.Collections.SortedList و الفئة العامة System.Collections.Generic.SortedList<TKey, TValue> و الفئة العامة System.Collections.Generic.SortedDictionary<TKey, TValue> يشبهون الفئة Hashtable و الفئة العامة Dictionary<TKey, TValue> في تطبيق الواجهة IDictionary ، ولكنهم يحافظون على العناصر الخاصة بهم في ترتيب الفرز بواسطة مفتاح و ليس لديهم الإدراج O(1) و استرداد الخصائص المميزة من الجداول التجزئة. وتمتلك الثلاث فئات العديد من الميزات المشتركة:

يسرد الجدول التالي بعض الاختلافات بين قائمتين لفئتين مفروزتين و أيضاً الفئة SortedDictionary<TKey, TValue>.

فئة غير عامة SortedList وفئة عامة SortedList<TKey, TValue>

فئة عامة SortedDictionary<TKey, TValue>

يتم فهرسة الخصائص التي تقوم بإرجاع مفاتيح وقيم ، بحيث تسمح بإسترداد المفهرس بكفاءة.

لا يوجد استرداد لمفهرسة.

يتم استرداد O(log n).

يتم استرداد O(log n).

الإدراج والإزالة يتم بشكل عام O(n) ؛ ومع ذلك، فالإدراج (O(1 للبيانات الموجودة بالفعل في ترتيب فرز بحيث يتم إضافة كل عنصر في نهاية القائمة. (هذا يفترض أن تغيير الحجم غير مطلوب.)

الإدراج والإزالة هي O(log n).

يستخدم ذاكرة أقل من SortedDictionary<TKey, TValue>.

تستخدم ذاكرة أكبر من الفئة غير العامة SortedList و الفئة العامة SortedList<TKey, TValue>.

قوائم تم فرزه أو القواميس التي يجب أن يمكن الوصول إليها بشكل متزامن من مؤشرات ترابط متعددة، يمكنك إضافة منطق فرز إلى فئة مشتقة من ConcurrentDictionary<TKey, TValue>.

ملاحظةملاحظة

للحصول على القيم التي تحتوي على المفاتيح الخاصة بها (على سبيل المثال، سجلات الموظفين التي تحتوي على رقم معرّف للموظف) ، يمكنك إنشاء مجموعة مفتاحية تحتوي علي بعض ميزات القائمة ومواصفات القاموس عن طريق الاشتقاق من الفئة العامة KeyedCollection<TKey, TItem>.

بدءاً .NET Framework الإصدار 4، SortedSet<T>فئة يوفر شجرة self-balancing التي تحتفظ بها بيانات تم فرزها حتى بعد عمليات الإدراج والحذف وعمليات البحث. وهذا فئة و HashSet<T>فئة تطبيق ISet<T>الواجهة.

راجع أيضًا:

المرجع

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>

ConcurrentDictionary<TKey, TValue>

موارد أخرى

أنواع المجموعة المستخدمة بشكل شائع