palavra-chave readonly não faz uma List <> ReadOnly?

Eu tenho o seguinte código em uma classe estática pública:

<code>public static class MyList
{
    public static readonly SortedList<int, List<myObj>> CharList;
    // ...etc.
}
</code>

.. mas mesmo usandoreadonly Ainda posso adicionar itens à lista de outra turma:

<code>MyList.CharList[100] = new List<myObj>() { new myObj(30, 30) };
</code>

ou

<code>MyList.CharList.Add(new List<myObj>() { new myObj(30, 30) });
</code>

Existe uma maneira de fazer a coisa ler apenas sem alterar a implementação da CharList (isso quebrará algumas coisas)? Se eu tiver que alterar a implementação (para torná-la não alterável), qual seria o melhor caminho? Eu preciso que seja List <T, T>, então ReadOnlyCollection não fará

questionAnswers(3)

yourAnswerToTheQuestion