数组顺序排列

时间:2014-01-05 19:57:19

标签: c# arrays

在我的主要内容中,这个数组包含随机数

    static void Main(string[] args)
    {
        int [] numbers = new int[] { 1, 6, 4, 11, 2, 5, 9, 3, 7, 10, 12, 8 };

        Console.WriteLine("The scores are: ");
        for (int i = 0; i < numbers.Length; i++)
        {
            Console.WriteLine(numbers[i]);
            Console.ReadLine();
        }

我需要在一个类中创建一个静态方法,重新排列这些数字,以便它们按顺序排列,我不知道如何做到这一点。我需要交换这些数字。

4 个答案:

答案 0 :(得分:9)

使用Array.Sort对原始数组进行排序:

Array.Sort(numbers);

Enumerable.OrderBy创建新的排序序列,您可以将其保存到数组:

int[] sorted = numbers.OrderBy(i => i).ToArray();

答案 1 :(得分:4)

Array类有一个Sort method (Array),它将数组作为参数。

  

使用。对整个一维数组中的元素进行排序   数组中每个元素的IComparable实现。

这是LINQPad;

的示例
void Main()
{
    int [] numbers = new int[] { 1, 6, 4, 11, 2, 5, 9, 3, 7, 10, 12, 8 };
    ReturnSortedArray(numbers);
    foreach (var element in numbers)
    {
        element.Dump();
    }
}
static void ReturnSortedArray(Array a)
{
    Array.Sort(a);
}

输出将是;

1
2
3
4
5
6
7
8
9
10
11
12

答案 2 :(得分:2)

要回答以下问题:如何创建静态方法来对数组进行排序,您可以使用下面的代码。

public static void Main(string[] args)
{
    int[] numbers = new int[] { 1, 6, 4, 11, 2, 5, 9, 3, 7, 10, 12, 8 };

    Console.WriteLine ("The scores are: ");
    for (int i = 0; i < numbers.Length; i++)
    {
        Console.WriteLine (numbers [i]);
    }

    Console.WriteLine ("The scores in order are: ");
    SortArray (numbers);
    for (int i = 0; i < numbers.Length; i++)
    {
         Console.WriteLine (numbers [i]);
    }

    Console.ReadLine ();
}

public static int[] SortArray(int[] arrayIn)
{
    Array.Sort (arrayIn);
    return arrayIn;
}

<强>输出

  

分数是:   1 6 4 11 2 5 9 3 7 10 12 8   得分是:   1 2 3 4 5 6 7 8 9 10 11 12

答案 3 :(得分:1)

你可以在这里排序

Array.Sort(numbers);