public AListStatisticTracker(Func <T, TSummary> selector, Func <TSummary[], TSummary> aggregator, TSummary emptyResult, AListBase <K, T> list = null) { _selector = selector; _aggregator = aggregator; _emptyResult = emptyResult; list?.AddObserver(this); }
public AListStatisticTracker(Func <T, TSummary> selector, Func <TSummary, TSummary, TSummary> aggregator, TSummary emptyResult, AListBase <K, T> list = null) { _selector = selector; _emptyResult = emptyResult; _aggregator = array => { if (array.Length == 0) { return(_emptyResult); } var total = array[0]; for (int i = 1; i < array.Length; i++) { total = aggregator(total, array[i]); } return(total); }; list?.AddObserver(this); }