示例#1
0
 public CastNode(NodeBase target) : base(target)
 {
 }
示例#2
0
        protected override NodeBase ReduceTerminalList(NodeBase node)
        {
            var values = node.GetTerminalValues <TIn>();

            return(CreateTerminal(values.Cast <TOut>()));
        }
示例#3
0
 protected override NodeBase ReduceTerminalList(NodeBase node)
 {
     return(Null);
 }
示例#4
0
 protected NodeBase(NodeBase target)
 {
     this.Target = target;
 }
示例#5
0
 protected abstract NodeBase ReduceTerminalItem(NodeBase node);
示例#6
0
 protected abstract NodeBase ReduceTerminalList(NodeBase node);
示例#7
0
 public DistinctNode(NodeBase target) : this(target, null)
 {
 }
示例#8
0
 public DistinctNode(NodeBase target, IEqualityComparer <TIn> equalityComparer)
     : base(target)
 {
     this.equalityComparer = equalityComparer ?? EqualityComparer <TIn> .Default;
 }
示例#9
0
        protected override NodeBase ReduceTerminalItem(NodeBase node)
        {
            var value = node.GetTerminalValue <TIn>();

            return(value is TOut?CreateTerminal((TOut)(object)value) : Null);
        }
示例#10
0
 public OfTypeNode(NodeBase target) : base(target)
 {
 }
示例#11
0
        protected override NodeBase ReduceTerminalList(NodeBase node)
        {
            var values = node.GetTerminalValues <TIn>();

            return(CreateTerminal(values.Where(this.predicate)));
        }
示例#12
0
        protected override NodeBase ReduceTerminalItem(NodeBase node)
        {
            var value = node.GetTerminalValue <TIn>();

            return(this.predicate(value) ? CreateTerminal(value) : Null);
        }
示例#13
0
 public WhereNode(NodeBase target, Func <TIn, bool> predicate) : base(target)
 {
     this.predicate = predicate;
 }