.NET Dictionary as a Property

Here's a quick example

class Example {
  private Dictionary<int,string> _map;
  public Dictionary<int,string> Map { get { return _map; } }
  public Example() { _map = new Dictionary<int,string>(); }
}

Some use cases

var e = new Example();
e.Map[42] = "The Answer";

sample code:

public class MyClass
{
  public MyClass()
  {
    TheDictionary = new Dictionary<int, string>();
  }

  // private setter so no-one can change the dictionary itself
  // so create it in the constructor
  public IDictionary<int, string> TheDictionary { get; private set; }
}

sample usage:

MyClass mc = new MyClass();

mc.TheDictionary.Add(1, "one");
mc.TheDictionary.Add(2, "two");
mc.TheDictionary.Add(3, "three");

Console.WriteLine(mc.TheDictionary[2]);

EDIT

When you use C# version 6 or later, you can also use this:

public class MyClass
{
  // you don't need a constructor for this feature

  // no (public) setter so no-one can change the dictionary itself
  // it is set when creating a new instance of MyClass
  public IDictionary<int, string> TheDictionary { get; } = new Dictionary<int, string>();
}