SortedSet<T> क्लास ऑब्जेक्ट्स के संग्रह को दर्शाता है जो सॉर्टेड ऑर्डर में बनाए रखा जाता है। डुप्लीकेट्स की अनुमति नहीं देता।
मुख्य गुण
| गुण | विवरण |
| Comparer | सॉर्टिंग के लिए उपयोग किया जाने वाला IComparer<T> ऑब्जेक्ट |
| Count | SortedSet में एलिमेंट्स की संख्या |
| Max | कॉम्पैरर के अनुसार अधिकतम वैल्यू |
| Min | कॉम्पैरर के अनुसार न्यूनतम वैल्यू |
मुख्य मेथड्स
| मेथड | विवरण |
Add(T) | एलिमेंट जोड़ता है, सफलता पर true लौटाता है |
Clear() | सभी एलिमेंट्स हटाता है |
Contains(T) | निर्दिष्ट एलिमेंट मौजूद है या नहीं जांचता है |
CopyTo(T[]) | ऐरे में कॉपी करता है |
CopyTo(T[], Int32) | निर्दिष्ट इंडेक्स से ऐरे में कॉपी |
CopyTo(T[], Int32, Int32) | निर्दिष्ट काउंट और इंडेक्स से कॉपी |
CreateSetComparer() | सेट तुलना के लिए IEqualityComparer लौटाता है |
ExceptWith | दूसरे सेट में मौजूद एलिमेंट्स हटाता है |
IntersectWith | केवल कॉमन एलिमेंट्स रखता है |
UnionWith | दूसरे सेट के सभी एलिमेंट्स जोड़ता है |
IsSubsetOf / IsSupersetOf | सबसेट/सुपरसेट संबंध जांचता है |
Overlaps | कम से कम एक कॉमन एलिमेंट है? |
SetEquals | समान एलिमेंट्स हैं? |
उदाहरण 1: बेसिक ऑपरेशन्स
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<string> set1 = new SortedSet<string>();
set1.Add("CD");
set1.Add("CD"); // डुप्लीकेट - इग्नोर होगा
set1.Add("CD");
set1.Add("CD");
Console.WriteLine("Elements in SortedSet1...");
foreach (string res in set1) {
Console.WriteLine(res);
}
Console.WriteLine("Does SortedSet1 contain 'DE'? = " + set1.Contains("DE"));
SortedSet<string> set2 = new SortedSet<string>();
set2.Add("BC");
set2.Add("CD");
set2.Add("DE");
set2.Add("EF");
set2.Add("AB");
set2.Add("HI");
set2.Add("JK");
Console.WriteLine("Elements in SortedSet2...");
foreach (string res in set2) {
Console.WriteLine(res);
}
Console.WriteLine("Is SortedSet2 a superset of SortedSet1? = " + set2.IsSupersetOf(set1));
}
}
आउटपुट
Elements in SortedSet1...
CD
Does the SortedSet1 contains the element DE? = False
Elements in SortedSet2...
AB
BC
CD
DE
EF
HI
JK
SortedSet2 is a superset of SortedSet1? = True
उदाहरण 2: एन्यूमरेटर का उपयोग
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<string> set1 = new SortedSet<string>();
set1.Add("AB");
set1.Add("BC");
set1.Add("CD");
set1.Add("EF");
Console.WriteLine("Elements in SortedSet1...");
foreach (string res in set1) {
Console.WriteLine(res);
}
SortedSet<string> set2 = new SortedSet<string>();
set2.Add("BC");
set2.Add("CD");
set2.Add("DE");
set2.Add("EF");
set2.Add("AB");
set2.Add("HI");
set2.Add("JK");
Console.WriteLine("Elements in SortedSet2 (Enumerator)...");
SortedSet<string>.Enumerator demoEnum = set2.GetEnumerator();
while (demoEnum.MoveNext()) {
string res = demoEnum.Current;
Console.WriteLine(res);
}
}
}
आउटपुट
Elements in SortedSet1...
AB
BC
CD
EF
Elements in SortedSet2 (Enumerator)...
AB
BC
CD
DE
EF
HI
JK
कस्टम कॉम्पैरर के साथ SortedSet
// केस-इनसेंसिटिव स्ट्रिंग सॉर्टिंग
var set = new SortedSet<string>(StringComparer.OrdinalIgnoreCase);
set.Add("banana");
set.Add("Apple");
set.Add("Cherry");
// आउटपुट: Apple, banana, Cherry
// डिसेंडिंग ऑर्डर
var descSet = new SortedSet<int>(Comparer<int>.Create((x, y) => y.CompareTo(x)));
descSet.Add(1);
descSet.Add(3);
descSet.Add(2);
// आउटपुट: 3, 2, 1
SortedSet vs अन्य संग्रह
| विशेषता | SortedSet<T> | HashSet<T> | List<T> + Sort | SortedList<TKey,TValue> |
| सॉर्टेड ऑर्डर | हाँ (ऑटो) | नहीं | मैन्युअल | हाँ (की द्वारा) |
| डुप्लीकेट्स | नहीं | नहीं | हाँ | की यूनिक |
| लुकअप स्पीड | O(log n) | O(1) | O(n) | O(log n) |
| इन्सर्शन स्पीड | O(log n) | O(1) | O(1) | O(log n) |