एक HashSet<T>
को लागू करता है ICollection<T>
इंटरफ़ेस:
public interface ICollection<T> : IEnumerable<T>, IEnumerable
{
// Methods
void Add(T item);
void Clear();
bool Contains(T item);
void CopyTo(T[] array, int arrayIndex);
bool Remove(T item);
// Properties
int Count { get; }
bool IsReadOnly { get; }
}
एक List<T>
उपकरण IList<T>
, जो विस्तार करता हैICollection<T>
public interface IList<T> : ICollection<T>
{
// Methods
int IndexOf(T item);
void Insert(int index, T item);
void RemoveAt(int index);
// Properties
T this[int index] { get; set; }
}
हैशसेट ने शब्दार्थ निर्धारित किया है, जिसे आंतरिक रूप से हैशटेबल के माध्यम से लागू किया गया है:
एक सेट एक संग्रह है जिसमें कोई डुप्लिकेट तत्व नहीं होते हैं, और जिनके तत्व किसी विशेष क्रम में नहीं होते हैं।
यदि यह सूचकांक / स्थिति / सूची व्यवहार को खो देता है, तो HashSet को क्या प्राप्त होता है?
HashSet से आइटम जोड़ना और पुनः प्राप्त करना हमेशा ऑब्जेक्ट द्वारा ही होता है, इंडेक्सर के माध्यम से नहीं, और O (1) ऑपरेशन के करीब होता है (सूची O (1) जोड़ें, O (1) इंडेक्स द्वारा प्राप्त होता है, O (n)) /हटाना)।
एक हाशसैट के व्यवहार की तुलना Dictionary<TKey,TValue>
मूल्यों के रूप में केवल चाबियाँ जोड़ने / हटाने और स्वयं शब्दकोश मूल्यों की अनदेखी करके की जा सकती है । आपको शब्दकोश में कुंजियों की अपेक्षा होगी कि डुप्लिकेट मान न हों, और यह "सेट" भाग का बिंदु है।
SortedSet
डेटा संरचना प्रदान करता है या तो आप एक सेट की संपत्ति नहीं होने के आदेश के बारे में क्या कहते हैं - या विकास टीम से गलतफहमी की ओर इशारा करता है।