I want to dispaly my sort array in textBox after click the button. I have two classes and one interface. First Class generate random numbers and show in textbox1, second class make bubble sort and I can't display sort array on texbox.
First class:
public class RandomArray
{
static readonly Random generator = new Random();
/// <summary>
/// here are the random numbers stored
/// </summary>
int[] array;
/// <summary>
/// store the min, max used to generate the data
/// </summary>
readonly int min, max;
/// <summary>
/// Constructor only needs how the value limits
/// </summary>
/// <param name="min">The minimum value (typical 0)</param>
/// <param name="max">The maximum value (example 100)</param>
public RandomArray(int min, int max)
{
this.min=min;
this.max=max;
this.array=new int[0];
}
/// <summary>
/// Fills the array with random numbers
/// </summary>
/// <param name="count">The number of data to generate</param>
public void Fill(int count)
{
this.array=new int[count];
// fill array with random integers
for (int i=0; i<array.Length; i++)
{
array[i]=generator.Next(min, max);
}
}
/// <summary>
/// Copy constructor if needed (optional)
/// </summary>
/// <param name="other">A RandomArray to copy the data from</param>
public RandomArray(RandomArray other)
{
this.min=other.min;
this.max=other.max;
this.array=(int[])other.array.Clone();
}
/// <summary>
/// Provide the data
/// </summary>
public int[] Array { get { return array; } }
/// <summary>
/// Provide the limits used
/// </summary>
public int Min { get { return min; } }
public int Max { get { return max; } }
/// <summary>
/// Creates a comma separated list of numbers like <c>[45,32,64,..]</c>
/// </summary>
public string ToStringList()
{
string[] parts=new string[array.Length];
for (int i=0; i<parts.Length; i++)
{
parts[i]=array[i].ToString();
}
return "["+string.Join(",", parts)+"]";
}
/// <summary>
/// Shows only the limits used
/// </summary>
public override string ToString()
{
return string.Format("RandomArray({0},{1})", min, max);
}
<!-- language: none-->
This is bubble sort
class BubbleSort : ISortAlgorithm<int>
{
public void Sort (int[] array)
{
int temp;
for (int j = 1; j <= array.Length - 2; j++)
{
for (int i = 0; i <= array.Length - 2; i++)
{
if (array[i] > array[i + 1])
{
temp = array[i + 1];
array[i + 1] = array[i];
array[i] = temp;
}
}
}
}
ISortAlgorithm:
interface ISortAlgorithm<T>
{
void Sort(T[] array);
}
The last thing is request to textbox:
private void button2_Click(object sender, EventArgs e)
{
BubbleSort p = new BubbleSort();
textBox1.Text = p.ToString();
}
And if I click the button program displays MyProgram.BubbleSort
Do I override bubblesort method ? or what ? I tried almost everything. Thanskd and regards.
BubbleSortclass.BubbleSortclass contains no state and indeed the Sort method sorts the method in place and doesn't return a new sort. This means a) you should probably make the class/method static to make it clearer that it is not doing anything. b) once you pass in an array to the sort method the original array is sorted so you just need to output that.