I made a 16 character code generator. It works like a charm now, but I was wondering if there's any way to do it more efficiently.
Just bear in mind I am quite new to C#, so don't just make my code more efficient, but explain to me how you do it.
public partial class MainWindow : Window
{
//Globals
string[] Letters = new string[27] { "A", "B", "C", "D", "E", "F", "G", "H", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
string[] Numbers = new string[9] { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
Random r = new Random();
int i = 0;
int a = 0;
private string[] generateCode()
{
string[] RL = new string[9];
string[] RN = new string[9];
//Random letters
while (i < 9)
{
RL[i] = Letters[r.Next(0, Letters.Length - 1)];
i++;
}
//Random numbers
while (a < 9)
{
RN[a] = Numbers[r.Next(0, Numbers.Length - 1)];
a++;
}
TextBox.Text = String.Format("{0}{1}{2}{3}-{4}{5}{6}{7}-{8}{9}{10}{11}-{12}{13}{14}{15}", RN[0], RL[1], RN[1], RL[2], RN[2], RL[3], RN[3], RL[4], RN[4], RL[5], RN[5], RL[6], RN[6], RL[7], RN[7], RL[8], RN[8]);
//Resetting the while loop
i = 0;
a = 0;
//Clipboard
Clipboard.SetText(TextBox.Text);
Message.Content = ("Copied to clipboard!");
return RL;
}
public MainWindow()
{
InitializeComponent();
}
private void Generate_Click(object sender, RoutedEventArgs e)
{
generateCode();
}