public String GetTierDescription(DeweyDecimalSystem item, int tier)
        {
            switch (tier)
            {
            case 0:
                return(item.High);

            case 1:
                return(item.Mid);

            case 2:
                return(item.Low);

            default: return("");
            }
        }
        public void Level(String zeros, String randZeros, int substring, int tier, int nMax)
        {
            List <string>      options = new List <string>();
            String             newCall;
            DeweyDecimalSystem newOption = callNumbers.Values.ElementAt(answer);

            options.Add(callNumbers.Keys.ElementAt(answer).Substring(tier, 1) + zeros + GetTierDescription(newOption, tier));

            while (options.Count < matches)
            {
                string temp = callNumbers.Keys.ElementAt(answer).Substring(substring, 1) + randZeros;
                int    min  = int.Parse(temp);
                int    max  = min + nMax;
                newCall   = randomGen.GetRandomNumber(min, max);
                newOption = randomGen.GenerateDescriptions(newCall.ToString());
                temp      = newCall.ToString().Substring(tier, 1) + zeros + GetTierDescription(newOption, tier);
                if (!options.Contains(temp) && GetTierDescription(newOption, tier) != "")
                {
                    options.Add(temp);
                }
            }
            optionsListView.ItemsSource = options.OrderBy(a => Guid.NewGuid()).ToList();
        }