1. Константы будут прописаны в исходном коде и, следовательно, будут известны уже на этапе компиляции.
2. Константы в коллекции должны быть доступны через точку (чтобы работал интеллисенс студии):
myConst.A = "a";
myConst.B = "b";
...
Console.WriteLine(myConst.A); // вывод: a
Console.WriteLine(myConst.B); // вывод: b
3. Коллекция должна наследоваться в возможностью переопределения ключей и/или добавления новых в классах-потомках:
class A
{
myConst.A = "a";
myConst.B = "b";
}
class B : A
{
myConst.A = "a_new";
myConst.C = "c_new"
}
// мне подойдёт доступ хоть через класс,
// хоть через объект класса, это не важно
B b = new B();
Console.WriteLine(b.myConst.A); // вывод: a_new
Console.WriteLine(b.myConst.B); // вывод: b
Console.WriteLine(b.myConst.C); // вывод: c_new
4. Крайне желательно чтобы была итерация по значениям констант (на то она и коллекция!):
foreach (var value in myConst)
{
Console.WriteLine(value);
}