NameValueCollection لا يفعل أي شيء في الواقع مع Iequalitycomparer؟
-
27-09-2019 - |
سؤال
أنا أبحث في System.Collections.Specialized.NameValueCollection
ويستغرق IEqualityComparer
, ، هذه أخبار جيدة إذا أراد شخص مثلي فرز العناصر في المجموعة ، على سبيل المثال ، شيء مثل الترتيب الأبجدي للمفاتيح.
ولكن ، على نظرة فاحصة في Reflector
, ، لا أرى NVC
الفصل بالفعل باستخدام IEqualityComparer
في أى مكان. هل ملاحظتي صحيحة؟ كما في ، لا أرى أي استخدام لـ IEqualityComparer
في كيان لا يطاق بخلاف إعادة ترتيب عناصره المكونة لبعض الترتيب الأساسي. وأنا لا أرى طريقة على NVC
يبدو أنه قد يرغب في فعل شيء من هذا النوع (Sort
, Arrange
, OrderBy
, Aggregate
, ، إلخ.).
المحلول
NameValueCollection
يستخدم علامة الهاش داخليا لتخزين القيم. ال Hashtable
يستخدم IEqualityComparer
إلى التجزئة ومقارنة مفاتيح المساواة.
لاحظ أيضا ذلك IEqualityComparer
لا تفعل أي طلب ، فهو يقارن فقط للمساواة (كما يوحي الاسم) لذلك ليس من المفيد إذا كنت تريد ذلك فرز القيم/المفاتيح.