public void Refresh() { var array = (T[])ViewArray.Clone(); Array.Sort(array, Comparison.ToComparer()); Update(array); }
public bool Remove(T item) { try { Update(ViewArray.Remove(item)); return(true); } catch { return(false); } }
protected override IEnumerable <MergeRecord> UpdateOverride(IEnumerable <T> others) { var othersList = others.ToList(); List <int> existingInOthers; var remainings = ViewArray.ToList(); var result = RemoveOldValues(remainings, othersList, out existingInOthers); if (!existingInOthers.IsSorted(new Comparison <int>((x, y) => x - y).ToComparer(), true)) { result.AddRange(Reorder(remainings, existingInOthers)); } result.AddRange(InsertNewValues(othersList, existingInOthers)); ViewArray = othersList.ToArray(); return(result); }
public void Add(T item) { Update(ViewArray.Add(item)); }
public void RemoveAt(int index) => Update(ViewArray.RemoveAt(index));
public void Insert(int index, T item) => Update(ViewArray.Insert(index, item));
public int IndexOf(T item) => ViewArray.IndexOf(item);
public void CopyTo(T[] array, int arrayIndex) => ViewArray.CopyTo(array, arrayIndex);
public bool Contains(T item) => ViewArray.Contains(item);