public VersionedList <T> Replace(T oldValue, T newValue) { var index = Items.IndexOf(oldValue); return(new VersionedList <T>( Items.Replace(oldValue, newValue), Version + 1, Changes.Add(ListChange.Replaced(Version, index, oldValue, newValue)) )); }
public VersionedList <T> SetItem(int index, T newItem) { var oldItem = Items[index]; return(new VersionedList <T>( Items.SetItem(index, newItem), Version + 1, Changes.Add(ListChange.Replaced(Version, index, oldItem, newItem)) )); }
public VersionedList <T> Replace(T oldValue, T newValue, IEqualityComparer <T> equalityComparer) { var index = Items.IndexOf(oldValue, equalityComparer); return(new VersionedList <T>( Items.Replace(oldValue, newValue, equalityComparer), Version + 1, Changes.Add(ListChange.Replaced(Version, index, oldValue, newValue)) )); }