C # Como tornar públicos getters e setters e métodos privados para uma coleção?

Eu gostaria de ter uma classe "A" com um (por exemplo) SortedList coleção "SrtdLst" propriedade e dentro desta classe "A" permitir a adição ou subtração de itens "SrtdLst". Mas em uma instância da classe "A", só permite obter ou definir o conteúdo dos itens, não adicionar novos itens ou subtrair os existentes. Em código:

class A
{
    public SortedList<string, string> SrtdLst = new SortedList<string, string>();

    public A()
    {
        // This must work:
        SrtdLst.Add("KeyA", "ValueA");
        // This too:
        SrtdLst["KeyA"] = "ValueAAA";
    }
}

class B
{
    public A a = new A();
    public B()
    {
        // I want the following code to fail:
        a.SrtdLst.Add("KeyB", "ValueB");
        // But this must work:
        a.SrtdLst["KeyA"] = "ValueBBB";
   }
}

UPDATE: Eu quero criar uma classe como System.Data.SqlClient.SqlCommand. Para os Procedimentos armazenados, você pode usar o membro "DeriveParameters" que preenche uma coleção de "Parâmetros", portanto, somente o valor de cada item pode ser modificado.

Como isso pode ser feito?

questionAnswers(4)

yourAnswerToTheQuestion