أنواع المجموعة المستخدمة بشكل شائع
أنواع المجموعات هي تباينات شائعة لمجموعات البيانات مثل جداول التجزئة، و قوائم الانتظار، و المكدسات ، و الحقائب، و القواميس، و القوائم.
تستند المجموعات إلى الواجهة ICollection، أو الواجهة IList، أو الواجهة IDictionary، أو النسخ العامة لهم. IListواجهة و IDictionaryواجهة كلاهما مشتقة من ICollectionالواجهة؛ ولذلك، الجميع مجموعات تستند إلى ICollectionالواجهة بشكل مباشر أو غير مباشر. في مجموعات استناداً إلى IListواجهة (مثل Array، ArrayList، أو List<T>) أو مباشرة تشغيل ICollectionواجهة (مثل Queue، ConcurrentQueue<T>، Stack، ConcurrentStack<T>أو LinkedList<T>)، كل عنصر يحتوي تشغيل فقط القيمة. في مجموعات استناداً إلى IDictionaryواجهة (مثل Hashtableو SortedListفئات، Dictionary<TKey, TValue>و SortedList<TKey, TValue>الفئات العامة)، أو ConcurrentDictionary<TKey, TValue>فئات، كل عنصر يحتوي تشغيل كل من المفتاح وقيمة. الفئة KeyedCollection<TKey, TItem> فريدة لأنها عبارة عن قائمة للقيم مع مفاتيح مضمنة خلال القيم، و لذلك، فهي تتصرف كقائمة و كقاموس.
المجموعات العامة هي أفضل حل للحصول علي نوع قوي. ومع ذلك، إذا لم تدع لغتك العام، فستتضمن مساحة الاسم System.Collections المجموعات الأساسية مثل CollectionBase، و ReadOnlyCollectionBase، و DictionaryBase، وهي فئات أساسية مجردة يمكن توسيعها لإنشاء مجموعة فئات ذات نوع قوي. عند طلب الوصول إلى مجموعة ذات مؤشرات ترابط متعددة وذات كفاءة، فاستخدم المجموعات العامة في مساحة الاسم System.Collections.Concurrent.
يمكن أن تختلف المجموعات اعتماداً على كيفية تخزين العناصر و كيفية فرزها و كيفية تنفيذ عمليات البحث و كيفية إجراء المقارنات. توفر الفئة Queue و الفئة العامة Queue<T> قوائم الأول دخولاً هو الأول خروجاً، بينما توفر الفئة Stack و الفئة العامة Stack<T> قوائم الأخير دخولاً هو الأول خروجاً. توفر الفئة SortedList و الفئة العامة SortedList<TKey, TValue> إصدارات تم فرزها من الفئة Hashtable و الفئة العامة Dictionary<TKey, TValue>. يمكن الوصول إلي العناصر من Hashtable أو من Dictionary<TKey, TValue> فقط بواسطة مفتاح العنصر، ولكن يمكن الوصول إلي العناصر SortedList أو KeyedCollection<TKey, TItem> بواسطة المفتاح أو بواسطة فهرس العنصر. الفهارس في كافة مجموعات تستند إلي الصفر، باستثناء Array، و الذي يسمح للصفائف بأن تستند علي قيمة غير الصفر.
تسمح لك كائنات LINQ باستخدام استعلامات LINQ للوصول إلى الكائنات في الذاكرة طالما يقوم نوع الكائن بتطبيق IEnumerable أو IEnumerable<T>. توفر استعلامات LINQ نمط شائع للوصول إلى البيانات: عادة ما تكون أكثر إيجازاً وأكثر قابلية للقراءة من الحلقات القياسية foreach; وتوفر إمكانيات تصفية و ترتيب و تجميع. يمكن لاستعلامات LINQ أيضاً تحسين الأداء. للمزيد من المعلومات، راجع LINQ كائنات وLINQ متوازي (PLINQ).
مواضيع ذات صلة
Title |
الوصف |
---|---|
توضح هذه المقالة ميزات الصفائف التي تمكنهم من أن يتم معاملتهم مثل المجموعات. |
|
توضح هذه المقالة ميزات القوائم العامة و غير العامة، و هي المجموعة الأكثر شيوعاً في الاستخدام. |
|
توضح هذه المقالة الميزات العامة و غير العامة لأنواع القاموس المستندة إلى التجزئة. |
|
وصف الفئات التي توفر وظيفة فرز لقوائم و تعيين. |
|
توضح هذه المقالة الميزات الموجودة في قوائم الانتظار العامة و غير العامة. |
|
توضح هذه المقالة الميزات الموجودة في المكدس العام و غير العام. |
|
تصف أنواع مجموعات System.Collections.Generic.HashSet<T> العامة. |
|
تصف مجموعة العمليات المتوفرة من قبل نوع المجموعة System.Collections.Generic.HashSet<T> وعمليات LINQ Set. |
|
يتناول هذا الموضوع أنواع المجموعات المختلفة المتوفرة في .NET Framework، بما في ذلك المكدسات و قوائم الانتظار ,و القوائم ,و المصفوفات و البنيات. |
|
يوضح هذه الموضوع المميزات العامة، بما في ذلك المجموعات العامة، والمفوضين, والواجهات التي يوفرها .NET Framework. يوفر هذا الموضوع ارتباطات لميزة وثائق C# و Visual Basic و Visual C++ ، و لدعم تقنيات مثل الانعكاس. |
المرجع
System.Collections.ICollection
System.Collections.Generic.ICollection<T>
System.Collections.Generic.IList<T>