কম্পিউটার টিউটোরিয়াল

C#-তে StringCollection ক্লাসের সম্পূর্ণ পরিচয় এবং ব্যবহার

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 লিগেসি নন-জেনেরিক ক্লাস।

  1. C#-এ StringCollection-এ স্ট্রিং যোগ করা

  2. C#-এ Convert ক্লাস: বেস ডেটা টাইপ রূপান্তর

  3. C#-এ StringCollection-এ নির্দিষ্ট স্ট্রিং আছে কিনা চেক করা

  4. C# Console ক্লাস