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 Keys property returns an ICollection of all keys.

  • Keys in StringDictionary are 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.

Updated on: 2026-03-17T07:04:36+05:30

192 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements