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

C#-তে ListDictionary-র সব এন্ট্রি সরাতে Clear() মেথড ব্যবহার

ListDictionary ক্লাসের Clear() মেথড ডিকশনারির সব কী-ভ্যালু জোড়া একসাথে সরিয়ে দেয় এবং Count প্রোপার্টি শূন্য করে দেয়।

উদাহরণ ১: একাধিক ListDictionary এবং Clear() ব্যবহার

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        ListDictionary dict1 = new ListDictionary();
        dict1.Add("A", "বই");
        dict1.Add("B", "ইলেকট্রনিক্স");
        dict1.Add("C", "স্মার্ট ওয়েয়ারেবল");
        dict1.Add("D", "পেট সাপ্লাই");
        dict1.Add("E", "পোশাক");
        dict1.Add("F", "ফুটওয়েয়ার");

        Console.WriteLine("ListDictionary1 উপাদানসমূহ...");
        foreach (DictionaryEntry d in dict1) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        ListDictionary dict2 = new ListDictionary();
        dict2.Add("1", "এক");
        dict2.Add("2", "দুই");
        dict2.Add("3", "তিন");
        dict2.Add("4", "চার");
        dict2.Add("5", "পাঁচ");
        dict2.Add("6", "ছয়");

        Console.WriteLine("\nListDictionary2 উপাদানসমূহ...");
        foreach (DictionaryEntry d in dict2) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        Console.WriteLine("Dictionary 2-র কী/ভ্যালু জোড়া সংখ্যা = " + dict2.Count);

        // dict3 = dict2 (রেফারেন্স কপি)
        ListDictionary dict3 = new ListDictionary();
        dict3 = dict2;
        Console.WriteLine("ListDictionary3 == ListDictionary2? = " + dict3.Equals(dict2));  // True (সেম অবজেক্ট)

        // dict3 Clear করা
        dict3.Clear();
        Console.WriteLine("Dictionary 3-র কী/ভ্যালু জোড়া সংখ্যা = " + dict3.Count);  // ০
        // নোট: dict2.Countও ০ হবে কারণ dict3 এবং dict2 একই অবজেক্ট রেফার করে
    }
}

আউটপুট

ListDictionary1 উপাদানসমূহ...
A বই
B ইলেকট্রনিক্স
C স্মার্ট ওয়েয়ারেবল
D পেট সাপ্লাই
E পোশাক
F ফুটওয়েয়ার

ListDictionary2 উপাদানসমূহ...
1 এক
2 দুই
3 তিন
4 চার
5 পাঁচ
6 ছয়
Dictionary 2-র কী/ভ্যালু জোড়া সংখ্যা = 6
ListDictionary3 == ListDictionary2? = True
Dictionary 3-র কী/ভ্যালু জোড়া সংখ্যা = 0

উদাহরণ ২: সিম্পল ListDictionary Clear()

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        ListDictionary dict1 = new ListDictionary();
        dict1.Add("A", "বই");
        dict1.Add("B", "ইলেকট্রনিক্স");
        dict1.Add("C", "স্মার্ট ওয়েয়ারেবল");
        dict1.Add("D", "পেট সাপ্লাই");
        dict1.Add("E", "পোশাক");
        dict1.Add("F", "ফুটওয়েয়ার");

        Console.WriteLine("ListDictionary1 উপাদানসমূহ...");
        foreach (DictionaryEntry d in dict1) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        Console.WriteLine("Dictionary 1-র কী/ভ্যালু জোড়া সংখ্যা = " + dict1.Count);  // ৬
    }
}

আউটপুট

ListDictionary1 উপাদানসমূহ...
A বই
B ইলেকট্রনিক্স
C স্মার্ট ওয়েয়ারেবল
D পেট সাপ্লাই
E পোশাক
F ফুটওয়েয়ার
Dictionary 1-র কী/ভ্যালু জোড়া সংখ্যা = 6

গুরুত্বপূর্ণ নোট

  • Clear() O(n) অপারেশন, যেখানে n হলো উপাদান সংখ্যা।
  • Clear() কল করার পর Count হয় ০, কিন্তু আন্ডারলাইং ডেটা স্ট্রাকচারের ক্যাপাসিটি变わらず থাকে।
  • উদাহরণ ১-এ dict3 = dict2 রেফারেন্স অ্যাসাইনমেন্ট, তাই dict3.Clear() দিয়ে dict2-ও খালি হয়ে যায়।
  • ডিপ কপি (নতুন অবজেক্ট) করতে চাইলে new ListDictionary(dict2) বা ম্যানুয়াল কপি করুন।

ListDictionary vs Dictionary<TKey,TValue>

বৈশিষ্ট্যListDictionaryDictionary<TKey,TValue>
নেমস্পেসSystem.Collections.SpecializedSystem.Collections.Generic
টাইপ সেফটিনন-জেনেরিক (object)জেনেরিক (টাইপ-সেফ)
বাস্তবায়নসিঙ্গলি-লিঙ্কড লিস্টহ্যাশ টেবিল
পারফরম্যান্স (ছোট)ভালো (≤10 আইটেম)ভালো
পারফরম্যান্স (বড়)খারাপ (O(n) লুকআপ)সুবিধাজনক (O(1) লুকআপ)
ক্রমইনসারশন অর্ডারনিরপেক্ষ (নিশ্চিত নয়)

সুপারিশ: নতুন প্রজেক্টে Dictionary<TKey, TValue> ব্যবহার করুন। ListDictionary লিগ্যাসি কোড এবং ছোট ডেটা সেটের জন্য।

  1. C#-তে HashSet-র সব উপাদান সরাতে Clear() মেথড ব্যবহার

  2. C#-এ StringDictionary-র সব এন্ট্রি মুছুন

  3. C#-এ লিস্ট থেকে ডুপ্লিকেট সরানো

  4. জাভাতে ArrayList-এ থেকে সব এলিমেন্ট রিমূভ করা