public static List<SearchParameter> GetSearches(string fileName)
        {
            List<SearchParameter> searches = new List<SearchParameter>();

            using (var reader = new StreamReader(fileName))
            {
                var line = reader.ReadLine();
                while (line != null && line.Length > 2)
                {
                    string[] tokens = line.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                    SearchParameter search = new SearchParameter(decimal.Parse(tokens[0].Trim()), decimal.Parse(tokens[1].Trim()));
                    searches.Add(search);
                    line = reader.ReadLine();
                }
            }

            return searches;
        }
        public static List<Product> GetProductsInPriceRange(SearchParameter priceRange, OrderedBag<Product> products)
        {
            List<Product> results = new List<Product>();
            var range = products.Range(
                new Product("low", priceRange.LowPrice), 
                true, 
                new Product("high", priceRange.HighPrice), 
                true);
            var count = 0;
            foreach (var product in range)
            {
                results.Add(product);
                count++;
                if (count >= 20)
                {
                    return results;
                }
            }

            return results;
        }