87 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.Collections.Specialized;
2024-02-15 17:13:16 +09:00
using R3;
using System.Linq;
using ObservableCollections;
2024-09-03 18:54:59 +09:00
using System.Collections;
using System.Collections.Generic;
2024-02-15 17:13:16 +09:00
var buffer = new ObservableList<int>(5);
2024-02-15 17:13:16 +09:00
var view = buffer.CreateView(value => value);
view.AttachFilter(value => value % 2 == 1); // when filtered, mismatch...!
2024-02-15 17:13:16 +09:00
//{
// INotifyCollectionChangedSynchronizedViewList created from ISynchronizedView with a filter.
var collection = view.ToNotifyCollectionChanged();
2024-02-15 17:13:16 +09:00
// Not disposed here.
//}
2024-02-15 17:13:16 +09:00
buffer.Insert(0, 1);
buffer.Insert(0, 1);
buffer.Insert(0, 2);
buffer.Insert(0, 3);
buffer.Insert(0, 5);
buffer.RemoveAt(buffer.Count - 1);
2024-02-15 17:13:16 +09:00
buffer.Insert(0, 8);
buffer.Insert(0, 13);
2024-02-15 17:13:16 +09:00
buffer.Move(1, 5);
2021-08-04 09:30:34 +09:00
foreach (var item in view)
{
Console.WriteLine(item);
}
Console.WriteLine("---");
foreach (var item in collection)
2021-09-22 20:19:11 +09:00
{
Console.WriteLine(item);
2021-08-04 09:30:34 +09:00
}
2021-09-22 20:19:11 +09:00
//var buffer = new ObservableFixedSizeRingBuffer<int>(5);
//var view = buffer.CreateView(value => value);
//view.AttachFilter(value => value % 2 == 1); // when filtered, mismatch...!
////{
//// INotifyCollectionChangedSynchronizedViewList created from ISynchronizedView with a filter.
//var collection = view.ToNotifyCollectionChanged();
//// Not disposed here.
////}
//buffer.AddFirst(1);
//buffer.AddFirst(1);
//buffer.AddFirst(2);
//buffer.AddFirst(3);
//buffer.AddFirst(5);
//buffer.AddFirst(8); // Argument out of range
//buffer.AddFirst(13);
//foreach (var item in collection)
//{
// Console.WriteLine(item);
//}
//Console.WriteLine("---");
//foreach (var item in view)
//{
// Console.WriteLine(item);
//}
//Console.WriteLine("---");
//foreach (var item in buffer)
//{
// Console.WriteLine(item);
//}