StringCollection क्लास (System.Collections.Specialized) स्ट्रिंग्स का एक संग्रह दर्शाती है। यह IList, ICollection, और IEnumerable इम्प्लीमेंट करती है। ध्यान दें: यह एक लीगेसी नॉन-जेनेरिक क्लास है; नए कोड के लिए List<string> उपयोग करें।
StringCollection प्रॉपर्टीज़
| क्रमांक | प्रॉपर्टी | विवरण |
| 1 | Count | संग्रह में स्ट्रिंग्स की संख्या प्राप्त करता है। |
| 2 | IsReadOnly | यह दर्शाता है कि क्या संग्रह रीड-ओनली है। |
| 3 | IsSynchronized | यह दर्शाता है कि क्या संग्रह थ्रेड-सेफ (सिंक्रोनाइज़्ड) है। |
| 4 | Item[Int32] | निर्दिष्ट इंडेक्स पर तत्व प्राप्त करता है या सेट करता है। |
| 5 | SyncRoot | सिंक्रोनाइज़ेशन के लिए उपयोग होने वाला ऑब्जेक्ट प्राप्त करता है। |
StringCollection मेथड्स
| क्रमांक | मेथड | विवरण |
| 1 | Add(String) | स्ट्रिंग को संग्रह के अंत में जोड़ता है। |
| 2 | AddRange(String[]) | स्ट्रिंग ऐरे के तत्वों को संग्रह के अंत में कॉपी करता है। |
| 3 | Clear() | सभी स्ट्रिंग्स को संग्रह से हटाता है। |
| 4 | Contains(String) | निर्दिष्ट स्ट्रिंग संग्रह में है या नहीं जांचता है। |
| 5 | CopyTo(String[], Int32) | संग्रह को एक-आयामी स्ट्रिंग ऐरे में निर्दिष्ट इंडेक्स से कॉपी करता है। |
| 6 | Equals(Object) | निर्दिष्ट ऑब्जेक्ट वर्तमान ऑब्जेक्ट के बराबर है या नहीं जांचता है। |
| 7 | GetEnumerator() | StringEnumerator लौटाता है जो संग्रह पर इटरेट करता है। |
| 8 | IndexOf(String) | निर्दिष्ट स्ट्रिंग का पहला इंडेक्स लौटाता है। |
| 9 | Insert(Int32, String) | निर्दिष्ट इंडेक्स पर स्ट्रिंग इंसर्ट करता है। |
| 10 | Remove(String) | निर्दिष्ट स्ट्रिंग का पहला ऑकरेंस हटाता है। |
| 11 | RemoveAt(Int32) | निर्दिष्ट इंडेक्स पर स्ट्रिंग हटाता है। |
उदाहरण 1: दो StringCollection ऑब्जेक्ट्स की तुलना
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection col1 = new StringCollection();
col1.Add("Accessories");
col1.Add("Books");
col1.Add("Electronics");
Console.WriteLine("StringCollection1 तत्व...");
foreach (string item in col1) {
Console.WriteLine(item);
}
StringCollection col2 = new StringCollection();
col2.Add("Accessories");
col2.Add("Books");
col2.Add("Electronics");
Console.WriteLine("\nStringCollection2 तत्व...");
foreach (string item in col2) {
Console.WriteLine(item);
}
// Equals रेफरेंस समानता जांचता है (कंटेंट नहीं!)
Console.WriteLine("\nदोनों StringCollections समान हैं? = " + col1.Equals(col2));
// कंटेंट समानता के लिए मैन्युअल जांच
bool contentEqual = col1.Count == col2.Count;
if (contentEqual) {
for (int i = 0; i < col1.Count; i++) {
if (col1[i] != col2[i]) {
contentEqual = false;
break;
}
}
}
Console.WriteLine("कंटेंट समान हैं? = " + contentEqual);
}
}
आउटपुट
StringCollection1 तत्व...
Accessories
Books
Electronics
StringCollection2 तत्व...
Accessories
Books
Electronics
दोनों StringCollections समान हैं? = False
कंटेंट समान हैं? = True
उदाहरण 2: Contains से स्ट्रिंग मौजूदगी जांचना
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection col = new StringCollection();
string[] arr = { "100", "200", "300", "400", "500" };
Console.WriteLine("ऐरे तत्व...");
foreach (string item in arr) {
Console.WriteLine(item);
}
col.AddRange(arr);
Console.WriteLine("\nक्या '800' StringCollection में है? = " + col.Contains("800"));
Console.WriteLine("क्या '300' StringCollection में है? = " + col.Contains("300"));
}
}
आउटपुट
ऐरे तत्व...
100
200
300
400
500
क्या '800' StringCollection में है? = False
क्या '300' StringCollection में है? = True
महत्वपूर्ण नोट्स
- लीगेसी क्लास:
System.Collections.Specialized नेमस्पेस में; .NET 1.x से।
- नॉन-जेनेरिक: प्रकार सुरक्षा नहीं; कंपाइल-टाइम जांच नहीं।
- केस-सेंसिटिव: स्ट्रिंग तुलना केस-सेंसिटिव है।
- Equals व्यवहार:
Object.Equals ओवरराइड नहीं करता - रेफरेंस समानता जांचता है।
- प्रदर्शन:
List<string> से धीमा (बॉक्सिंग/अनबॉक्सिंग)।
आधुनिक विकल्प: List<string>
// अनुशंसित दृष्टिकोण
var list = new List<string>();
list.Add("Accessories");
list.Add("Books");
list.AddRange(new[] { "Electronics", "Clothing" });
bool hasItem = list.Contains("Books"); // O(n)
int index = list.IndexOf("Books"); // O(n)
list.Remove("Books");
list.Sort(); // वर्णानुक्रम सॉर्ट