public CastNode(NodeBase target) : base(target) { }
protected override NodeBase ReduceTerminalList(NodeBase node) { var values = node.GetTerminalValues <TIn>(); return(CreateTerminal(values.Cast <TOut>())); }
protected override NodeBase ReduceTerminalList(NodeBase node) { return(Null); }
protected NodeBase(NodeBase target) { this.Target = target; }
protected abstract NodeBase ReduceTerminalItem(NodeBase node);
protected abstract NodeBase ReduceTerminalList(NodeBase node);
public DistinctNode(NodeBase target) : this(target, null) { }
public DistinctNode(NodeBase target, IEqualityComparer <TIn> equalityComparer) : base(target) { this.equalityComparer = equalityComparer ?? EqualityComparer <TIn> .Default; }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); return(value is TOut?CreateTerminal((TOut)(object)value) : Null); }
public OfTypeNode(NodeBase target) : base(target) { }
protected override NodeBase ReduceTerminalList(NodeBase node) { var values = node.GetTerminalValues <TIn>(); return(CreateTerminal(values.Where(this.predicate))); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); return(this.predicate(value) ? CreateTerminal(value) : Null); }
public WhereNode(NodeBase target, Func <TIn, bool> predicate) : base(target) { this.predicate = predicate; }