示例#1
0
 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);
 }
示例#2
0
 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);
 }