IDictionary
How can we use the C# IDictionary
interface
? Many lookup types (Dictionary
, SortedDictionary
) implement the IDictionary
interface
.
interface
notesWe can make types that implement IDictionary
. But it is useful too as an abstraction—we can accept IDictionary
as a parameter type.
This program uses Dictionary
and SortedDictionary
. Suppose that you want to add some functionality that can work on an instance of Dictionary
or an instance of SortedDictionary
.
IDictionary
type.WriteKeyA
method works equally well on Dictionary
and SortedDictionary
instances.using System; using System.Collections.Generic; class Program { static void Main() { // Dictionary implements IDictionary. Dictionary<string, string> dict = new Dictionary<string, string>(); dict["A"] = "B"; WriteKeyA(dict); // SortedDictionary implements IDictionary. SortedDictionary<string, string> sort = new SortedDictionary<string, string>(); sort["A"] = "C"; WriteKeyA(sort); } static void WriteKeyA(IDictionary<string, string> i) { // Use instance through IDictionary interface. Console.WriteLine(i["A"]); } }B C
It is also possible to have fields of type IDictionary
. This can make it possible to have a class
that can use any dictionary type without worrying about which one it is.
Dictionary
type and never need to change this class
. Variables can use type IDictionary
.The IDictionary
type has many required methods. The Dictionary
type itself is good at what it does. An alternative implementation would not be of much use in most programs.
SortedDictionary
, are typically not useful.IDictionary
can be used in an implementation of a custom dictionary. It can also be used in programs that act upon different dictionary types including Dictionary
and SortedDictionary
.