Propriedade indexada nomeada em c #?

Algumas linguagens - como Delphi - têm uma maneira muito conveniente de criar indexadores: não apenas toda a classe, mas até propriedades únicas podem ser indexadas, por exemplo:

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;

Isso pode ser usado facilmente:

var c : TMyClass;

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

Existe uma maneira de obter o mesmo efeito em c # facilmente?

questionAnswers(1)

yourAnswerToTheQuestion