示例#1
0
 public static TallyCount UpdateTally <T>(this ITally <T> tally, TallyCount count, IEnumerable <T> items)
 {
     foreach (var item in items)
     {
         UpdateTally(tally, count, item);
     }
     return(count);
 }
示例#2
0
        public static TallyCount CreateTally <T>(this ITally <T> tally, IEnumerable <T> items)
        {
            var count = new TallyCount(tally.Definition);

            foreach (var item in items)
            {
                UpdateTally(tally, count, item);
            }
            return(count);
        }
示例#3
0
        public static TallyCount UpdateTally <T>(this ITally <T> tally, TallyCount count, T item)
        {
            var i = tally.BinSelector(item);

            if (i < 0)
            {
                return(count);
            }
            if (i >= tally.Definition.Bins.Length)
            {
                throw new Exception($"BinSelector() returned invalid value: {i} ({tally.Definition.Bins.Length} bins exist");
            }
            if (count.Counts.Length != tally.Definition.Bins.Length)
            {
                Array.Resize(ref count.Counts, tally.Definition.Bins.Length);
            }
            count.Counts[i]++;
            return(count);
        }
示例#4
0
 public void Add(TallyCount c2)
 {
     Enumerable.Range(0, Counts.Length).Select(i => Counts[i] += c2.Counts[i]).ToList();
 }