StringCollection ক্লাস (System.Collections.Specialized নেমস্পেস) একটি স্ট্রিং-স্পেসিফিক কালেকশন যা শুধুমাত্র স্ট্রিং মান ধারণ করে। এটি IList, ICollection, IEnumerable বাস্তবায়ন করে। আধুনিক C#-এ List<string> ব্যবহার করা বেশি পছন্দনীয়, কারণ এটি জেনেরিক, টাইপ-সেফ এবং পারফরম্যান্সে ভালো।
প্রোপার্টিগুলো
| ক্রমিক নং | প্রোপার্টি ও বর্ণনা |
|---|---|
| ১ | Count StringCollection-এ থাকা স্ট্রিংয়ের মোট সংখ্যা রিটার্ন করে। |
| ২ | IsReadOnly কলেকশন রিড-ওনলি কিনা নির্দেশ করে (ডিফল্ট false)। |
| ৩ | IsSynchronized থ্রেড-সেফ्टी (সিঙ্ক্রোনাইজড অ্যাক্সেস) আছে কিনা নির্দেশ করে। |
| ৪ | Item[Int32] নির্দিষ্ট সূচকের উপাদান পাওয়ার/সেট করার সুযোগ দেয়। |
| ৫ | SyncRoot সিঙ্ক্রোনাইজেশনের জন্য 사용할 অবজেক্ট রিটার্ন করে। |
মেথডসমূহ
| ক্রমিক নং | মেথড ও বর্ণনা |
|---|---|
| ১ | Add(String) শেষে একটি স্ট্রিং যোগ করে। |
| ২ | AddRange(String[]) একটি স্ট্রিং অ্যারের সব উপাদান শেষে যোগ করে। |
| ৩ | Clear() সব স্ট্রিং মুছে দেয়। |
| ৪ | Contains(String) নির্দিষ্ট স্ট্রিং আছে কিনা যাচাই করে। |
| ৫ | CopyTo(String[], Int32) উপাদানগুলো নির্দিষ্ট সূচক থেকে অ্যারেতে কপি করে। |
| ৬ | Equals(Object) অবজেক্ট সমতা যাচাই করে (ইনহেরিটেড)। |
| ৭ | GetEnumerator() StringEnumerator রিটার্ন করে যা কালেকশনের মাধ্যমে পুনরাবৃত্তি করে। |
উদাহরণ ১: দুটি StringCollection সমতা যাচাই
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol1 = new StringCollection();
strCol1.Add("Accessories");
strCol1.Add("Books");
strCol1.Add("Electronics");
Console.WriteLine("StringCollection1 উপাদানসমূহ...");
foreach (string res in strCol1) {
Console.WriteLine(res);
}
StringCollection strCol2 = new StringCollection();
strCol2.Add("Accessories");
strCol2.Add("Books");
strCol2.Add("Electronics");
Console.WriteLine("StringCollection2 উপাদানসমূহ...");
foreach (string res in strCol2) { // বাগ: strCol1 এর বদলে strCol2 হওয়া উচিত
Console.WriteLine(res);
}
Console.WriteLine("দুটি StringCollection সমান কি? = " + strCol1.Equals(strCol2));
}
}
আউটপুট
StringCollection1 উপাদানসমূহ... Accessories Books Electronics StringCollection2 উপাদানসমূহ... Accessories Books Electronics দুটি StringCollection সমান কি? = False
দ্রষ্টব্য: Equals() রেফারেন্স সমতা চেক করে (কন্টেন্ট নয়)। কন্টেন্ট তুলনার জন্য SequenceEqual() বা ম্যানুয়াল লুপ ব্যবহার করুন। উদাহরণে লুপে strCol1 এর বদলে strCol2 হওয়া উচিত ছিল।
উদাহরণ ২: Contains() ব্যবহার করে স্ট্রিং খোঁজা
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection stringCol = new StringCollection();
String[] arr = new String[] { "100", "200", "300", "400", "500" };
Console.WriteLine("অ্যারে উপাদানসমূহ...");
foreach (string res in arr) {
Console.WriteLine(res);
}
stringCol.AddRange(arr);
Console.WriteLine("নির্দিষ্ট স্ট্রিং StringCollection-এ আছে কি? = " + stringCol.Contains("800"));
}
}
আউটপুট
অ্যারে উপাদানসমূহ... 100 200 300 400 500 নির্দিষ্ট স্ট্রিং StringCollection-এ আছে কি? = False
সুপারিশ: নতুন প্রজেক্টে List<string> বা HashSet<string> (দ্রুত লুকআপের জন্য) ব্যবহার করুন। StringCollection লিগেসি নন-জেনেরিক ক্লাস।