Как вызвать функцию случайным образом в c# согласно значению выбора списка флажков? - PullRequest
0 голосов
/ 26 марта 2020

Флажок Список содержит n элементов, тогда комбинация выбора элементов имеет различные логики c. например, 4 элемента в списке, затем пользователь может выбрать 1, 2, 3 или 4 элемента.

  1. , если выбран 1 элемент, возможный случай 4
    • -> если элементы [0] выбраны затем (random_function [0])
    • -> если элементы затем выбраны 1 (random_function 1 )

. .so on

когда выбрано 2 элемента, возможный случай - 6
  • -> если элементы [0] и элементы 1 , затем выберите (random_function [0] или random_function 1 )
  • -> если элементы [0] и элементы [2], затем выберите (random_function [0] или random_function [2])

. .so on

когда выбрано 3 элемента, возможный случай - 3
  • -> если элементы [0] и элементы 1 & элементы [2], затем выберите (random_function [0] или random_function 1 или random_function [2])
  • -> если элементы [0] & items 1 & items [3], затем выберите (random_function [0] или random_function 1 или random_function [3])

. .so on

, когда выбрано 4 элемента, возможный случай 1
  • -> если элементы [0] и элементы 1 & элементы [2] и элементы [4], затем выберите (random_function [0] или random_function 1 или random_function [2] или random_function [3])

Примечание: random_function [i] вызывает случайно

Итак, каждый элемент имеет каждый , если случаев, это возможно для небольшого числа n, что, если значение n больше, чем 10 или 20.

Я пытался для n = 4 (флажок пунктов), но я должен попробовать для n = 15.

Как вызвать эти функции в соответствии с выбранными комбинациями элементов.

enter image description here

И следующий код в событии нажатия кнопки: `

string s = null;
            int c = 0;
            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                if (checkedListBox1.GetItemChecked(i))
                {
                    c = c + 1;
                }
            }
            if (c == 1)
            {
                if (checkedListBox1.GetItemChecked(0))
                { s = " Item one"; }
                else if (checkedListBox1.GetItemChecked(1))
                { s = " Item two "; }
                else if (checkedListBox1.GetItemChecked(2))
                { s = " Item three "; }
                else if (checkedListBox1.GetItemChecked(3))
                { s = " Item four "; }
            }
            else if (c == 2)
            {
                Random r = new Random();
                int var = r.Next(1, 3);
                if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(1))
                {
                    if (var == 1) { s = " Item one "; }
                    else { s = " Item two "; }
                }
                else if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(2))
                {
                    if (var == 1) { s = " Item one "; }
                    else { s = " Item three "; }
                }
                else if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item one "; }
                    else { s = " Item four "; }
                }
                else if (checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(2))
                {
                    if (var == 1) { s = " Item two "; }
                    else { s = " Item three "; }
                }
                else if (checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item two "; }
                    else { s = " Item four "; }
                }
                else if (checkedListBox1.GetItemChecked(2) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item three "; }
                    else { s = " Item four "; }
                }
            }
            else if (c == 3)
            {
                Random r = new Random();
                int var = r.Next(1, 4);
                if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(2))
                {
                    if (var == 1) { s = " Item one "; }
                    else if (var == 2) { s = " Item two "; }
                    else { s = " Item three "; }
                }
                else if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item one "; }
                    else if (var == 2) { s = " Item two "; }
                    else { s = " Item three "; }
                }
                else if (checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(2) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item one "; }
                    else if (var == 2) { s = " Item two "; }
                    else { s = " Item three "; }
                }
            }
            else if (c == 4)
            {
                Random r = new Random();
                int var = r.Next(1, 4);
                if (checkedListBox1.GetItemChecked(0) && checkedListBox1.GetItemChecked(1) && checkedListBox1.GetItemChecked(2) && checkedListBox1.GetItemChecked(3))
                {
                    if (var == 1) { s = " Item one "; }
                    else if (var == 2) { s = " Item two "; }
                    else if (var == 3) { s = " Item three "; }
                    else { s = " Item four "; }
                }
            }
            label1.Text = s; //output

`

...