@playboyter

Значения не выбираются рандомно из 2 массивов, как исправить?

Есть 2 массива, откуда значения должны выбираться рандомно. Однако индекс значения из одного массива всегда соответствует индексу из другого массива. Что нужно сделать, чтобы индексы элементов из каждого массива были разными?
using System;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            Start: string[] name = new string[10]
               {
                            "имя1",
                            "имя2",
                            "имя3",
                            "имя4",
                            "имя5",
                            "имя6",
                            "имя7",
                            "имя8",
                            "имя9",
                            "имя10"
               };
            Random rand_name = new Random();
            int index_n = rand_name.Next(name.Length);
            string n = name[index_n];

            string[] name2 = new string[10]
            {
                            "фамилия1",
                            "фамилия2",
                            "фамилия3",
                            "фамилия4",
                            "фамилия5",
                            "фамилия6",
                            "фамилия7",
                            "фамилия8",
                            "фамилия9",
                            "фамилия10"
            };
            Random rand_name2 = new Random();
            int index_n2 = rand_name2.Next(name2.Length);
            string n2 = name2[index_n2];
            Console.WriteLine($"{n} {n2}");
            Console.ReadKey(); 
            goto Start;
        }
    }
}

Спасибо!
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
2chevskii
@2chevskii
Если бы каждый мог в поиск, тостер бы вымер.
Так как числа не случайные, а псевдослучайные, для их генерации используется определенное семя, которое в пределах одного цикла вычислений одно и то же. Решение - не создавать второй инстанс Random, а использовать предыдущий: int index_n2 = rand_name.Next(name2.Length);

P.S. Не используйте goto, это плохая практика в C#
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы