public LstInternal <A> RemoveAt(int index) { if (index < 0 || index >= Root.Count) { throw new IndexOutOfRangeException(); } return(Wrap(ListModule.Remove(Root, Rev ? Count - index - 1 : index), Rev)); }
public LstInternal <A> Remove(A value, IComparer <A> equalityComparer) { var index = ListModule.Find(Root, value, 0, Count, equalityComparer); return(index >= 0 && index < Count ? Wrap(ListModule.Remove(Root, index), Rev) : this); }
/// <summary> /// Remove an item from the list /// </summary> public Lst <T> Remove(T value, IComparer <T> equalityComparer) { var index = ListModule.Find(Root, value, 0, Count, equalityComparer); return(index >= 0 && index < Count ? new Lst <T>(ListModule.Remove(Root, index), Rev) : this); }
public LstInternal <A> RemoveAll(Func <A, bool> pred) => Wrap(ListModule.Remove(Root, pred));
public LstInternal <A> Remove(A value, IEqualityComparer <A> equalityComparer) => Wrap(ListModule.Remove(Root, value, equalityComparer));