C# Windows Form Application - Visual Studio
This is my code that creates an array and sorts it by numerical value, step by step in a textbox. The only problem is that when i click the button multiple times it switches between the actual array and what seems to be another random array. Why is this?
int[] randArray = new int[5];
private void txtSeed_TextChanged(object sender, EventArgs e) {
int notaninteger;
if (!int.TryParse(txtSeed.Text, out notaninteger)) {
txtSeed.Text = "0";
}
if (int.Parse(txtSeed.Text) < 0) {
txtSeed.Text = "0";
}
}
private void btnLotto_Click(object sender, EventArgs e) {
fillArray();
sortArray();
showResult();
}
private void fillArray() {
bool inArray = true;
Random random = new Random(int.Parse(txtSeed.Text));
for (int i = 0; i < randArray.Length; i++) {
do {
int randomNumber = random.Next(1, 51);
inArray = checkArray(randomNumber);
if (!inArray) {
randArray[i] = randomNumber;
}
}
while (inArray);
}
}
private void displayArray() {
txtLotto.AppendText(getFormat());
txtLotto.AppendText("\r\n");
}
private void sortArray() {
txtLotto.Text = "";
for (int i = 0; i < randArray.Length; i++) {
for (int j = 0; j < randArray.Length - 1; j++) {
if (randArray[j] > randArray[j + 1]) {
swap(ref randArray[j], ref randArray[j + 1]);
displayArray();
}
}
}
}
private bool checkArray(int a) {
for (int i = 0; i < randArray.Length; i ++) {
if (randArray[i] == a) {
return true;
}
}
return false;
}
private string getFormat() {
string format = "";
for (int i = 0; i < randArray.Length; i ++) {
if (i != 0) {
format += "-";
}
format += randArray[i];
}
return format;
}
private void showResult() {
lblFinalResult.Text = "Final Result: ";
string format = "";
for (int i = 0; i < randArray.Length; i++) {
if (i != 0) {
format += "-";
}
format += randArray[i];
}
lblFinalResult.Text += format;
}
private void swap(ref int a, ref int b) {
int tempA = a;
a = b;
b = tempA;
}