C # Jak sprawić, aby publiczne gettery i setery oraz prywatne metody kolekcji?

Chciałbym mieć klasę „A” z (na przykład) kolekcją SortedList „SrtdLst”, a wewnątrz tej klasy „A” umożliwia dodawanie lub odejmowanie elementów „SrtdLst”. Ale w przypadku klasy „A” zezwalaj tylko na pobieranie lub ustawianie zawartości elementów, a nie dodawanie nowych elementów lub odejmowanie istniejących. W kodzie:

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: Chcę utworzyć klasę taką jak System.Data.SqlClient.SqlCommand. W przypadku procedur przechowywanych można użyć elementu „DeriveParameters”, który wypełnia kolekcję „Parametry”, więc tylko wartość każdego elementu może być modyfikowana.

Jak można to zrobić?

questionAnswers(4)

yourAnswerToTheQuestion