2016-01-20 109 views
-2

我有一个随机元素的数组。数组中有10个元素。从最小到最大排序数组

如何订购第二个数组中的数字,从最小到最大。

在第二阵列examle阵列(43,2,23,45 ...)必须是(2,23,43,45 ...)

码c#

int[] mass = new int[10]; 
int[] mass2 = new int[10]; 

void shemtxvevitimasivi() 
{ 
    label1.Text = ""; 
    Random r = new Random(); 
    for (int i=0; i<mass.Length; i++) 
    { 
     mass[i] = r.Next(0, 100); 
    } 
    for (int k=0; k<mass.Length; k++) 
    { 
     label1.Text+=mass[k].ToString()+" | "; 
    } 
} 

void minim() 
{ 
    for (int t = 0; t < mass.Length; t++) 
    { 
     label2.Text = mass.Min().ToString() + " | "; 
    } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    minim(); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    shemtxvevitimasivi(); 
} 
+0

第一阵列的复制内容到一个新的数组,然后使用排序['的Array.Sort()']新阵列(https://msdn.microsoft。 com/en-us/library/6tf1f0bc%28v = vs.110%29.aspx) –

+0

看一看:http://www.csharp-examples.net/sort-array/ – NoChance

+0

int [] mass2 =( INT [])mass.Clone(); Array.Sort(mass2);' –

回答

3

可以只使用.Sort

int[] mass2 = { 4, 7, 2, 0 }; 
Array.Sort(mass2); 

foreach (int value in values) 
{ 
    Console.Write(value); 
    Console.Write(' '); 
} 

// outputs 0 2 4 7 
1

你可以用户可以自己实现一些排序算法,或者只是简单地使用:

Array.Sort(yourArray); 
+0

这会修改原始数组,并不会产生第二个数组。 –

+0

总是可以将原始数组复制到一个新数组中,然后对其进行排序,这个问题含糊其词,因此我无法准确理解他们需要什么。 – James

3

可以经由LINQ的创建第二阵列作为第一个的(排序)拷贝

int[] mass = new int[10]; 
    ... 

    int[] mass2 = mass 
    .OrderBy(x => x) 
    .ToArray(); 
1
int[] values = { 43, 2, 23, 45 }; 
int[] ordered = values.OrderBy(x => x).ToArray(); 

可以使用OrderBy订购以升序的元素。如果你想这样做(顺序降序),那么你可以使用OrderByDescending