Вы ищете общую ковариацию коллекции. Очевидно, что эта функция не поддерживается версией C #, которую вы используете.
Вы можете обойти это с помощью метода расширения Cast<T>()
. Имейте в виду, однако, что это создаст копию исходного списка вместо передачи оригинала как другой тип:
cat.Play((new List<Cat>()).Cast<Animal>().ToList());