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>
| বৈশিষ্ট্য | ListDictionary | Dictionary<TKey,TValue> |
|---|---|---|
| নেমস্পেস | System.Collections.Specialized | System.Collections.Generic |
| টাইপ সেফটি | নন-জেনেরিক (object) | জেনেরিক (টাইপ-সেফ) |
| বাস্তবায়ন | সিঙ্গলি-লিঙ্কড লিস্ট | হ্যাশ টেবিল |
| পারফরম্যান্স (ছোট) | ভালো (≤10 আইটেম) | ভালো |
| পারফরম্যান্স (বড়) | খারাপ (O(n) লুকআপ) | সুবিধাজনক (O(1) লুকআপ) |
| ক্রম | ইনসারশন অর্ডার | নিরপেক্ষ (নিশ্চিত নয়) |
সুপারিশ: নতুন প্রজেক্টে Dictionary<TKey, TValue> ব্যবহার করুন। ListDictionary লিগ্যাসি কোড এবং ছোট ডেটা সেটের জন্য।