Beispiel #1
0
        public T Get()
        {
            if (needsRefresh)
            {
                CalculateTotalWeight();
            }
            double num = random.NextDouble();

            num *= _totalWeight;
            foreach (Tuple <T, double> element in elements)
            {
                if (!(num > element.Item2))
                {
                    return(element.Item1);
                }
                num -= element.Item2;
            }
            return(default(T));
        }