I am doing some courseworks and I can't figure how to override a method after extending from a class. I am trying to override it by using the new keyword, but base method is still invoked.
public class TrainList : ObservableCollection<Train>
{
    ...
    public new void Add(Train train)
    {
        Console.WriteLine("Contains ID: " + ContainsId(train.Id).ToString());
        if (!ContainsId(train.Id)) base.Add(train);
    }
    ...
}
ViewModel:
public class AddTrain
{
    // Possible values for selectable items
    public ObservableCollection<Station> Stations => Facades.StationList.Instance;
    public ObservableCollection<Train> Trains => Facades.TrainList.Instance;
    public void InsertTrain()
    {
        ....
        Train newTrain = trainBuilder.build();
        Console.WriteLine("Created an object");
        Trains.Add(newTrain);
    }
}
How can one override a method from extended class when there are generics in c#?
