لماذا لا .صافي لديك مجموعة البيانات هيكل ؟
-
07-07-2019 - |
سؤال
واحدة من أكبر القضايا التي تتعامل مع الانتقال من جافا .صافي هو حقيقة أن ليس هناك واجهة مجموعة في .صافي.أعرف أن هناك مكتبات يمكنني أن أذهب و تحميل ولكن ما هو سبب عدم وجود ذلك بنيت في ؟ هناك خرائط (القاموس) و القوائم ولكن لماذا لا ؟
تحرير:أود أن أوضح أن ليس كل من يستخدم .Net framework 3.5 بعد-أنا أكثر أو أقل مشيرا إلى الإصدارات القديمة من .صافي
المحلول
واعتقد انها مجرد سهو من الكتاب BCL. الصافي 3.5 لديه HashSet الطبقة. للإصدارات السابقة، فإنني أوصي التفاف قاموس
نصائح أخرى
في. NET سيتم تحديثه وتعديله 4.0 HashSet
لتنفيذ حتى واجهة ISet
جديدة.
والصافي 3.5 لديها HashSet الذي يفعل كل عمليات المجموعة.
هل يعني HashSet ؟
ولقد HashSet<T>
هناك في هذه الأيام، ولكن للأسف لا يوجد واجهة التي أنا على علم.
وكما ذكر آخرون، هناك HashSet<T>
، الذي هو في الواقع مجرد مجموعة.
والسبب انها "التجزئة" أمامه (تفصيل تطبيق من مجموعة لأنه يستخدم التجزئة للقضاء على التكرارات) هو becase Set
هو الكلمة في VB.NET.
ولعل المنطق هو أن مجموعة هو في الحقيقة مجرد قائمة مع تفصيل تطبيق معين يحد من العناصر الموجودة لكونها متميزة. منذ المميز من القائمة هو في التنفيذ بدلا من واجهة، ليست هناك حاجة واجهة.
وكما ذكر آخرون، وFCL لديه HashSet<T>
.
كما انتقلت من جافا .صافي مؤخرا (بسبب العمالة المهنية) ويجب أن أعترف بأن أول المشاكل أيضا على مجموعات.
في الفترة الحالية .صافي الإصدار (3.5 و يتحدث عن C#) يجب توجيه نفسك على
ICollection
IList<T>
List<T>
IDictionary<TKey,TValue>
IEnumerable<T>
هذه هي الأكثر شيوعا (آمل ان لا يغيب واحد)
وربما بسبب اعتبارات التعليمية.
ومبرمج نموذجي يرى مجموعات كحاوية السحرية التي تعمل فقط بغض النظر عن عدد العناصر هي في ذلك.
إذا لم يكن هناك مجموعة واضحة، تضطر مبرمج للاختيار من بينها أنواع أخرى وأثناء القيام بذلك تعكس على العناصر العد وهيكل البيانات المناسبة لتحقيق أداء جيد.
ومجرد تخمين البرية.