예제 #1
0
        public void Refresh()
        {
            var array = (T[])ViewArray.Clone();

            Array.Sort(array, Comparison.ToComparer());
            Update(array);
        }
예제 #2
0
 public bool Remove(T item)
 {
     try
     {
         Update(ViewArray.Remove(item));
         return(true);
     } catch
     {
         return(false);
     }
 }
예제 #3
0
        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);
        }
예제 #4
0
 public void Add(T item)
 {
     Update(ViewArray.Add(item));
 }
예제 #5
0
 public void RemoveAt(int index)
 => Update(ViewArray.RemoveAt(index));
예제 #6
0
 public void Insert(int index, T item)
 => Update(ViewArray.Insert(index, item));
예제 #7
0
 public int IndexOf(T item) => ViewArray.IndexOf(item);
예제 #8
0
 public void CopyTo(T[] array, int arrayIndex)
 => ViewArray.CopyTo(array, arrayIndex);
예제 #9
0
 public bool Contains(T item)
 => ViewArray.Contains(item);