Ejemplo n.º 1
0
 public VersionedList <T> Add(T item)
 {
     return(new VersionedList <T>(
                Items.Add(item),
                Version + 1,
                Changes.Add(ListChange.Added(Version, Items.Count, item))));
 }
Ejemplo n.º 2
0
 public VersionedList <T> Insert(int index, T item)
 {
     return(new VersionedList <T>(
                Items.Insert(index, item),
                Version + 1,
                Changes.Add(ListChange.Added(Version, index, item))));
 }
Ejemplo n.º 3
0
        public VersionedList <T> AddRange(IEnumerable <T> items)
        {
            var itemsToAdd = items.ToArray();
            var changes    = Enumerable.Range(0, itemsToAdd.Length)
                             .Select(i => ListChange.Added(Version + i, Items.Count + i, itemsToAdd[i]));

            return(new VersionedList <T>(
                       Items.AddRange(items),
                       Version + itemsToAdd.Length,
                       Changes.AddRange(changes)
                       ));
        }