C # - Propiedades indexadas?

He estado usando Visual Basic durante bastante tiempo y recientemente he tomado la decisión de comenzar a aprender C # como un paso adelante en el aprendizaje de idiomas más complejos.

Como parte de este salto, he decidido convertir algunos de mis antiguos proyectos de VB a mano en C #. El problema que tengo es con la conversión de una biblioteca que tenía una clase que usa propiedades con argumentos / índices.

La propiedad sería algo como esto en VB:

Friend Property Aproperty(ByVal Index As Integer) As AClass
        Get
            Return Alist.Item(Index)
        End Get
        Set(ByVal value As KeyClass)
            Alist.Item(Index) = value
        End Set
    End Property

Cuando usé la propiedad se usaría así:

Bclass.Aproperty(5) = new AClass

Es este tipo de cosas que quiero lograr en C #, pero no puedo entender por mi vida cómo hacer esto, ya que parece que C # no puede hacer este tipo de cosas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta