コード例 #1
0
        public static ICountableCollection <T> Select <T>(this ICountableCollection <T> collection, Func <T, T> transformer)
        {
            var result = new CountableCollection <T>();

            foreach (KeyValuePair <T, int> keyValuePair in collection)
            {
                result.Add(transformer(keyValuePair.Key), keyValuePair.Value);
            }
            return(result);
        }
コード例 #2
0
        public bool TryExchange(IDecreasingOrderCollection <int> availableValues, int valueForExchange, out ICountableCollection <int> result)
        {
            result = new CountableCollection <int>();
            foreach (int availableValue in availableValues.DecreasingOrder())
            {
                if (valueForExchange == 0)
                {
                    return(true);
                }
                if (valueForExchange >= availableValue)
                {
                    valueForExchange -= availableValue;
                    result.Add(availableValue, 1);
                }
            }

            return(valueForExchange == 0);
        }