¿Propiedad indexada nombrada en C #?

Algunos idiomas, como Delphi, tienen una forma muy conveniente de crear indexadores: no solo se puede indexar toda la clase, sino incluso propiedades individuales, por ejemplo:

type TMyClass = class(TObject)
protected
    function GetMyProp(index : integer) : string;
    procedure SetMyProp(index : integer; value : string);
public
    property MyProp[index : integer] : string read GetMyProp write SetMyProp;
end;

Esto se puede usar fácilmente:

var c : TMyClass;

begin
    c = TMyClass.Create;
    c.MyProp[5] := 'Ala ma kota';
    c.Free;
end;

¿Hay alguna manera de lograr el mismo efecto en C # fácilmente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta