It doesn't seem to work. See the code below. SkipList<int> sl = new(); sl.Add(1); sl.Add(2); sl.Remove(1); // Error: sl.Count == 2