Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Get a collection of keys in the StringDictionary in C#
The StringDictionary class in C# provides the Keys property to retrieve a collection of all keys in the dictionary. This property returns an ICollection containing all the keys, which can be copied to an array or iterated through directly.
Syntax
Following is the syntax for accessing the Keys property −
StringDictionary dictionary = new StringDictionary(); ICollection keys = dictionary.Keys;
To copy keys to an array −
string[] keyArray = new string[dictionary.Count]; dictionary.Keys.CopyTo(keyArray, 0);
Using Keys Property
The following example demonstrates how to retrieve and display all keys from a StringDictionary −
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main(){
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("U", "Electronics");
strDict1.Add("V", "Toys");
strDict1.Add("W", "Books");
strDict1.Add("X", "Accessories");
Console.WriteLine("StringDictionary1 elements...");
foreach(DictionaryEntry d in strDict1){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Does StringDictionary1 has key G? "+strDict1.ContainsKey("G"));
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nStringDictionary2 elements...");
foreach(DictionaryEntry d in strDict2){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nCollection of keys (StringDictionary2)...");
String[] keyArr = new String[strDict2.Count];
strDict2.Keys.CopyTo(keyArr, 0);
for (int i = 0; i < strDict2.Count; i++) {
Console.WriteLine("Key "+(i+1)+" = "+keyArr[i]);
}
Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = "+strDict2.Equals(strDict1));
Console.WriteLine("Does StringDictionary2 has key B? "+strDict2.ContainsKey("B"));
}
}
The output of the above code is −
StringDictionary1 elements... x Accessories u Electronics v Toys w Books Does StringDictionary1 has key G? False StringDictionary2 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Collection of keys (StringDictionary2)... Key 1 = a Key 2 = b Key 3 = c Key 4 = d Key 5 = e Key 6 = f Key 7 = g Is Dictionary2 equal to Dictionary1? = False Does StringDictionary2 has key B? True
Using Keys with Values
You can also retrieve both keys and their corresponding values using the keys array −
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main(){
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("S", "Home Appliances");
strDict1.Add("T", "Smart Wearable Tech");
strDict1.Add("U", "Electronics");
strDict1.Add("V", "Toys");
strDict1.Add("W", "Books");
strDict1.Add("X", "Accessories");
Console.WriteLine("StringDictionary elements...");
foreach(DictionaryEntry d in strDict1){
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nCollection of keys and values...");
String[] keyArr = new String[strDict1.Count];
strDict1.Keys.CopyTo(keyArr, 0);
for (int i = 0; i < strDict1.Count; i++) {
Console.WriteLine("Key "+(i+1)+" = "+keyArr[i]+", Value "+(i+1)+" = "+strDict1[keyArr[i]]);
}
Console.WriteLine("\nDoes StringDictionary has key B? "+strDict1.ContainsKey("B"));
}
}
The output of the above code is −
StringDictionary elements... x Accessories s Home Appliances t Smart Wearable Tech u Electronics v Toys w Books Collection of keys and values... Key 1 = x, Value 1 = Accessories Key 2 = s, Value 2 = Home Appliances Key 3 = t, Value 3 = Smart Wearable Tech Key 4 = u, Value 4 = Electronics Key 5 = v, Value 5 = Toys Key 6 = w, Value 6 = Books Does StringDictionary has key B? False
Key Properties
-
The
Keysproperty returns anICollectionof all keys. -
Keys in
StringDictionaryare automatically converted to lowercase. -
The keys collection is not sorted and may appear in any order.
-
Use
CopyTo()method to copy keys to a string array for indexed access.
Conclusion
The Keys property of StringDictionary provides an efficient way to retrieve all keys in the collection. You can copy these keys to an array using CopyTo() method and then access individual keys by index or use them to retrieve corresponding values from the dictionary.
