terça-feira, 15 de dezembro de 2015

C# Método para gerar n números aleatórios sem repetição

        /// <summary>
        /// Método para gerar n números aleatórios sem repetição
        /// </summary>
        /// <param name="begin"></param>
        /// <param name="end"></param>
        /// <param name="quantity"></param>
        /// <returns></returns>
        /// <example>
        /// <code>
        /// <![CDATA[
        /// ArrayList numbers = RandomNumbers(500000, 700000, numero);
        /// for (int i = 0; i < numbers.Count; i++)
        /// {
        ///     Console.WriteLine(numbers[i]);
        /// }
        /// ]]>
        /// </code>
        /// </example>
        public static ArrayList RandomNumbers(int begin, int end, int quantity)
        {
            // cria um objeto da classe Random
            Random rnd = new Random();
            // vamos preencher um ArrayList com a faixa de números
            ArrayList values = new ArrayList();
            for (int i = begin; i < end; i++)
            {
                values.Add(i);
            }
            // Vamos embaralhar o ArrayList
            for (int i = 0; i < values.Count; i++)
            {
                int aux = rnd.Next(values.Count);
                object temp = values[i];
                values[i] = values[aux];
                values[aux] = temp;
            }
            // Retorna o array e números obtidos
            return values.GetRange(0, quantity);
        }

Nenhum comentário:

Postar um comentário