Рандом string'ов без повторений - C#

Узнай цену своей работы

Формулировка задачи:

Всех с наступившим Новым Годом! Прошу помочь лишь с количеством букв в конечной строке. Вот код:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            timer1.Enabled = false;
        }
 
        string[] shac = {"й","ц","у", "к","е","н","г","ш","щ","з","х","ъ",
                            "ф","ы","в","а","п","р","о","л","д","ж","э","я",
                            "ч","с","м","и","т","ь","б","ю","ё"};
 
        //int number = 0;
 
        //Random rand = new Random(DateTime.Now.Millisecond);
        Random rand = new Random();
        List<string> lst = new List<string>();
 
        int x = 0;
 
        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            lst.Clear();
 
            //try
            //{
            //    number = Convert.ToInt32(textBox1.Text);
            //}
            //catch
            //{
            //    MessageBox.Show("число");
            //}

            timer1.Interval = 1;
            timer1.Enabled = true;
        }
    
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            richTextBox1.Select(richTextBox1.Text.Length, 0);
            richTextBox1.ScrollToCaret();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            //1
            string random_text = shac[rand.Next(shac.Length)];
 
            ////2
            //string random_text1 = shac[rand.Next(shac.Length)];
            //string random_text2 = shac[rand.Next(shac.Length)];
            //string random_text = random_text1 + random_text2;
 
            ////3
            //string random_text1 = shac[rand.Next(shac.Length)];
            //string random_text2 = shac[rand.Next(shac.Length)];
            //string random_text3 = shac[rand.Next(shac.Length)];
            //string random_text = random_text1 + random_text2 + random_text3;
 
            if (!lst.Contains(random_text))
            {
                lst.Add(random_text);
                richTextBox1.Text += random_text + "\n";
                x++;
                label1.Text = "сгенерировано: " + x;
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
    }
Вот это для одной, двух и трех букв в слове соответственно:
//1
            string random_text = shac[rand.Next(shac.Length)];
 
            ////2
            //string random_text1 = shac[rand.Next(shac.Length)];
            //string random_text2 = shac[rand.Next(shac.Length)];
            //string random_text = random_text1 + random_text2;
 
            ////3
            //string random_text1 = shac[rand.Next(shac.Length)];
            //string random_text2 = shac[rand.Next(shac.Length)];
            //string random_text3 = shac[rand.Next(shac.Length)];
            //string random_text = random_text1 + random_text2 + random_text3;
Помогите сделать по-человечески, чтобы с textBox'а вводилось количество букв. Думаю вопрос понятен. Заранее спасибо.

Решение задачи: «Рандом string'ов без повторений»

textual
Листинг программы
            //try
            //{
            //    number = Convert.ToInt32(textBox1.Text);
            //}
            //catch
            //{
            //    MessageBox.Show("число");
            //}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы