ListDictionary ক্লাসের Values প্রোপার্টি একটি ICollection রিটার্ন করে যা ডিকশনারির সব মান (value) ধারণ করে। এই কালেকশনকে এনুমারেট করে বা অ্যারেতে কপি করে সব ভ্যালু পাওয়া যায়।
উদাহরণ ১: ডিভাইস নামের ভ্যালু সংগ্রহ
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
ListDictionary listDict = new ListDictionary();
listDict.Add("1", "ল্যাপটপ");
listDict.Add("2", "ট্যাবলেট");
listDict.Add("3", "ডেস্কটপ");
listDict.Add("4", "স্পিকার");
listDict.Add("5", "ইয়ারফোন");
listDict.Add("6", "হেডফোন");
// Values প্রোপার্টি থেকে ICollection পাওয়া
ICollection col = listDict.Values;
Console.WriteLine("ListDictionary-র সব ভ্যালু:");
foreach (String s in col) {
Console.WriteLine(s);
}
}
}
আউটপুট
ল্যাপটপ ট্যাবলেট ডেস্কটপ স্পিকার ইয়ারফোন হেডফোন
উদাহরণ ২: ব্যক্তির নামের ভ্যালু সংগ্রহ
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
ListDictionary listDict = new ListDictionary();
listDict.Add("A", "টম");
listDict.Add("B", "জন");
listDict.Add("C", "কেভিন");
listDict.Add("D", "টিম");
ICollection col = listDict.Values;
Console.WriteLine("ListDictionary-র সব ভ্যালু:");
foreach (String s in col) {
Console.WriteLine(s);
}
}
}
আউটপুট
টম জন কেভিন টিম
বিকল্প পদ্ধতিগুলো
// ১. Values কালেকশনকে অ্যারেতে কপি
string[] valuesArray = new string[listDict.Count];
listDict.Values.CopyTo(valuesArray, 0);
for (int i = 0; i < valuesArray.Length; i++) {
Console.WriteLine(valuesArray[i]);
}
// ২. foreach দিয়ে সরাসরি Values এনুমারেট (উপরের উদাহরণের মতো)
// ৩. DictionaryEntry দিয়ে কী-ভ্যালু উভয় একসাথে
foreach (DictionaryEntry entry in listDict) {
Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}
// ৪. LINQ ব্যবহার (System.Linq namespace দরকার)
var valuesList = listDict.Values.Cast<string>().ToList();
valuesList.ForEach(v => Console.WriteLine(v));
গুরুত্বপূর্ণ বিষয়সমূহ
Valuesপ্রোপার্টিICollectionরিটার্ন করে (নন-জেনেরিক)।- ভ্যালুগুলোর ক্রম ইনসারশন অর্ডার অনুসরণ করে (ListDictionary-র বৈশিষ্ট্য)।
- ডুপ্লিকেট ভ্যালু থাকতে পারে (কী ইউনিক হয়, ভ্যালু নয়)।
Values.Countদিয়ে ভ্যালুগুলোর সংখ্যা জানা যায়।- এই কালেকশন রিয়েল-টাইম ভিউ - ডিকশনারি পরিবর্তন হলে কালেকশনটিও পরিবর্তিত হয়।
সুবিধা ও অসুবিধা
| পদ্ধতি | সুবিধা | অসুবিধা |
|---|---|---|
| foreach (Values) | সহজ, মেমরি দক্ষ | শুধু ভ্যালু পাওয়া যায়, কী নয় |
| CopyTo অ্যারে | র্যান্ডম অ্যাক্সেস, इंडেক্সিং | অতিরিক্ত মেমরি, কপি 오ভারহেড |
| DictionaryEntry foreach | কী-ভ্যালু উভয় পাওয়া যায় | বক্সিং/আনবক্সিং ওভারহেড (নন-জেনেরিক) |