/// <summary> /// Gets four random product from the product list, with no duplications. /// </summary> /// <param name="products">The Products list from the order system.</param> /// <returns></returns> public IList<Product> GetRandomProducts() { /* To ensure uniqueness, we first create a list of product IDs. * Then we generate a random number to pull an ID from the list, * adter which we delete the ID from the list. That way, even if * the same random number is generated twice, the product ID * selected will be unique. */ // Initialize int productID = -1; IList<Product> results = new List<Product>(); // Create a list of product IDs List<int> productIdList = new List<int>(); for (int i = 0; i < 10; i++) { productIdList.Add(i); } // Grab four products at random for (int i = 0; i < 4; i++) { // Get a random number int n = m_RandomNumberGenerator.Next(productIdList.Count - 1); // Get a product ID, then delete it productID = productIdList[n]; productIdList.RemoveAt(n); // And add the product to the results list results.Add(p_Catalog[productID]); } // Set return value return results; }