✅ How do I deal with generic covariance and collections types? - C#