I have made a conversion
That is a VB "parameterized property" - there is no direct C# equivalent. The closest equivalent in C# is to make it a regular method (which is called the same if the original parameterized property only has a 'get'):
public Ship GetShip(ShipName name)
{
if (name == ShipName.None)
return null;
else
return _Ships[name];
}