Avatar ·

¿Por qué no deberías heredar tu clase de List<T> en C#?

¡Hola a todos! Soy un desarrollador C# principiante y me encontré con un problema de diseño. Estoy escribiendo una aplicación para gestionar una biblioteca. Tengo una clase `Book` (libro) y quiero hacer una clase `Library` que contenga una lista de libros y también tenga sus propios métodos, como `FindByAuthor()` o `GetTotalPages()`. Al principio pensé que lo más lógico era simplemente heredar de `List`: ```csharp public class Library : List { public List FindByAuthor(string author) { return this.Where(b => b.Author == author).ToList(); } public int GetTotalPages() { return this.Sum(b => b.Pages); } } ``` Parece que funciona, pero leí en Stack Overflow que es una mala práctica. La gente dice que "no se debe heredar de List". Pero no entiendo bien por qué. Después de todo, es muy conveniente: obtienes todos los métodos de la lista (Add, Remove, indexador, etc.) de inmediato. Mi código se vuelve corto y bonito. ¿Pueden explicarme con ejemplos por qué esto es