أنواع مجموعة الحروف
الفئة System.Collections.SortedList و الفئة العامة System.Collections.Generic.SortedList<TKey, TValue> و الفئة العامة System.Collections.Generic.SortedDictionary<TKey, TValue> يشبهون الفئة Hashtable و الفئة العامة Dictionary<TKey, TValue> في تطبيق الواجهة IDictionary ، ولكنهم يحافظون على العناصر الخاصة بهم في ترتيب الفرز بواسطة مفتاح و ليس لديهم الإدراج O(1) و استرداد الخصائص المميزة من الجداول التجزئة. وتمتلك الثلاث فئات العديد من الميزات المشتركة:
تطبق كل الفئات الثلاثة الواجهة System.Collections.IDictionary. تطبق أيضاً الفئتين العامتين System.Collections.Generic.IDictionary<TKey, TValue>الواجهة العامة.
يعد كل عنصر علي شكل زوج مفتاح/قيمة لأغراض التعداد.
ملاحظة تقوم الفئة الغير عامة SortedList بإرجاع الكائنات DictionaryEntry عند تعدادها , على الرغم من أن أنواع الفئتين العامتين يقومان بإرجاع الكائنات KeyValuePair<TKey, TValue>.
يتم فرز العناصر طبقًا إلي التفيذ System.Collections.IComparer (بالنسبة لغير العام SortedList) أو التنفيذ System.Collections.Generic.IComparer<T> (من أجل الفئتين العامتين).
توفر كل فئة خصائص تقوم بإرجاع مجموعات تحتوي على المفاتيح فقط أو القيم فقط.
يسرد الجدول التالي بعض الاختلافات بين قائمتين لفئتين مفروزتين و أيضاً الفئة 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>