Сбой при сравнении двух элементов массива - C# (177210)

Формулировка задачи:

public class Girls : ITreeComponent, IComparable<Girls>
    {
        public string Name;
        public List<ITreeComponent> GirlsSet;
 
        public void Add(ITreeComponent component)
        {
            GirlsSet.Add(component);
        }
        public Girls(string name)
        {
            GirlsSet = new List<ITreeComponent>();
            Name = name;
        }
 
        public int CompareTo(Girls compareGirls)
        {
            if (compareGirls == null)
                return 1;
 
            else
                return String.Compare(this.Name, compareGirls.Name);
        }
    }
static void Main()
        {
           Girls test = new Girls("");
           /*Добавление элементов в коллекцию*/
           test.Sort();
        }
Подскажите пожалуйста, почему возникает ошибка при попытке сортировки? Есть подозрение, что это происходит из-за того, что в коллекции GirlsSet хранятся не Girl, а ITreeComponent объекты, но тогда как это исправить?

Код к задаче: «Сбой при сравнении двух элементов массива - C# (177210)»

textual
public interface ITreeComponent : IComparable<ITreeComponent>
    {
        void ToTree(ITreeComponent root);
        void PrepareToss();
        void MakeToss();
    }

5   голосов, оценка 4.400 из 5


СОХРАНИТЬ ССЫЛКУ