Beispiel #1
0
 public static ICompositeSet <TResult> Select <TSource, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, TResult> f
     ) => m.Bind(x =>
 {
     var data    = new CompositeSourceSet <TResult>();
     data.Source = data.Source.Add(f(x));
     return(data);
 });
Beispiel #2
0
 public static ICompositeSet <TResult> SelectMany <TSource, TICompositeSet, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, ICompositeSet <TICompositeSet> > f
     , Func <TSource, TICompositeSet, TResult> g
     ) => m.Bind(x => f(x).Bind(y =>
 {
     var data    = new CompositeSourceSet <TResult>();
     data.Source = data.Source.Add(g(x, y));
     return(data);
 }));
Beispiel #3
0
        public CompositeSet(ICompositeSet <T> left,
                            ICompositeSet <T> right)
        {
            _Left  = left;
            _Right = right;

            Items = _Left.Items.CombineLatest
                        (_Right.Items, (a,
                                        b) => a.Union(b))
                    .Replay(1)
                    .RefCount();
        }
Beispiel #4
0
 public static CompositeSetSubscription <T> Subscribe <T>
     (this ICompositeSet <T> @this) => new CompositeSetSubscription <T>(@this);
Beispiel #5
0
 public static ICompositeSet <TResult> SelectMany <TSource, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, ICompositeSet <TResult> > f
     ) => m.Bind(f);
Beispiel #6
0
 public CompositeSetSubscription(ICompositeSet <T> list)
 {
     _Items = list.Items.ToProperty(this, p => p.Items);
 }