Ejemplo n.º 1
0
 public IEnumerable <IDuratedItem <T> > Intersecting(Time point) =>
 elements_start
 .BeforeOrAt(point)
 .Select(kvp => kvp.Value)
 .Intersect(
     elements_end
     .After(point)
     .Select(kvp => kvp.Value)
     );
Ejemplo n.º 2
0
        public IEnumerable <KeyValuePair <Time, V> > BeforeOrAt(Time bar)
        {
            if (pivot <= bar)
            {
                foreach (var item in items)
                {
                    yield return(new KeyValuePair <Time, V>(pivot, item));
                }
            }

            if (left != null)
            {
                if (pivot <= bar)
                {
                    foreach (var item in left.All())
                    {
                        yield return(item);
                    }
                }
                else
                {
                    foreach (var item in left.BeforeOrAt(bar))
                    {
                        yield return(item);
                    }
                }
            }

            if (right != null)
            {
                foreach (var item in right.BeforeOrAt(bar))
                {
                    yield return(item);
                }
            }
        }