NameValueCollection لا يفعل أي شيء في الواقع مع Iequalitycomparer؟

StackOverflow https://stackoverflow.com/questions/3053237

سؤال

أنا أبحث في System.Collections.Specialized.NameValueCollection ويستغرق IEqualityComparer, ، هذه أخبار جيدة إذا أراد شخص مثلي فرز العناصر في المجموعة ، على سبيل المثال ، شيء مثل الترتيب الأبجدي للمفاتيح.

ولكن ، على نظرة فاحصة في Reflector, ، لا أرى NVC الفصل بالفعل باستخدام IEqualityComparer في أى مكان. هل ملاحظتي صحيحة؟ كما في ، لا أرى أي استخدام لـ IEqualityComparer في كيان لا يطاق بخلاف إعادة ترتيب عناصره المكونة لبعض الترتيب الأساسي. وأنا لا أرى طريقة على NVC يبدو أنه قد يرغب في فعل شيء من هذا النوع (Sort, Arrange, OrderBy, Aggregate, ، إلخ.).

هل كانت مفيدة؟

المحلول

NameValueCollection يستخدم علامة الهاش داخليا لتخزين القيم. ال Hashtable يستخدم IEqualityComparer إلى التجزئة ومقارنة مفاتيح المساواة.

لاحظ أيضا ذلك IEqualityComparer لا تفعل أي طلب ، فهو يقارن فقط للمساواة (كما يوحي الاسم) لذلك ليس من المفيد إذا كنت تريد ذلك فرز القيم/المفاتيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top