protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); if (!(value is TOut)) { throw new InvalidCastException(); } return(CreateTerminal((TOut)(object)value)); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); if (this.itemsTaken >= this.count) { return(Null); } this.itemsTaken++; return(CreateTerminal(value)); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); if (this.previousValues.Contains(value, this.equalityComparer)) { return(Null); } this.previousValues.Add(value); return(CreateTerminal(value)); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); return(CreateTerminal(this.selector(value))); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); return(value is TOut?CreateTerminal((TOut)(object)value) : Null); }
protected override NodeBase ReduceTerminalItem(NodeBase node) { var value = node.GetTerminalValue <TIn>(); return(this.predicate(value) ? CreateTerminal(value) : Null); }