-1

这是我的 C# 课程的额外学分作业。使用该方法很容易反转数组,但我非常困惑如何在不使用它的情况下进行反转。任何提示或帮助将不胜感激。

namespace Reverse4Loop 
{
    class Program
    {
        static void Main()
        {
        int[] array = { 1, 2, 3, 4 };
        foreach (int value in array)
        {
            Console.WriteLine(value);
        }
        Console.WriteLine();


        Array.Reverse(array);
        foreach (int value in array)
        {
            Console.WriteLine(value);
        }
        Console.WriteLine();
    }
}

}

4

4 回答 4

0

这是一个使用foreach和时间的解决方案List<int>

int[] array = { 1, 2, 3, 4 };
List<int> aux = new List<int>();
foreach (int i in array)
    aux.Insert(0, i);
int[] reversed = aux.ToArray();
于 2013-04-04T04:18:50.307 回答
0

提供额外的学分以帮助激励您学习。请尝试从这个答案中学习,不要只是复制/粘贴它。

LINQ 的强大功能之一是它的排序能力:升序和降序。如果上升意味着向上(即向前),那么下降可以说是反向。

使用 LINQ,您可以按升序写出数组:

foreach (var value in array.OrderBy(a => a))
    Console.WriteLine(value);

现在,在将鼠标悬停在下面的答案上以了解如何反向执行之前,请在 Visual Studio 中使用智能感知,或使用谷歌LINQ 降序并确定要替换OrderBy的方法,以降序写出数组:

回答

foreach(数组中的var值。OrderByDescending(a => a))
Console.WriteLine(值);

将鼠标悬停在上面的框上以显示解决方案

于 2013-04-04T04:32:04.910 回答
-1

检查这是否适合您:) 这是典型的方法。但是,给予额外学分的期望是什么?

static void Main(string[] args)
{
    int[] array = { 1, 2, 3, 4 };
    int length = array.Count();
    for (int i = 0; i < length / 2; i++)
    {
        int temp = array[i];
        array[i] = array[length - 1 - i];
        array[length - 1 - i] = temp;
    }
    foreach (int value in array)
    {
        Console.WriteLine(value);
    }
}
于 2013-04-04T04:07:56.047 回答
-1
namespace Reverse4Loop 
{
    class Program
    {
        static void Main()
        {
        int[] array = { 1, 2, 3, 4 };
        foreach (int value in array)
        {
            Console.WriteLine(value);
        }
        Console.WriteLine();

        int arrayLength = array.Length;

        int[] array2 = new int[arrayLength];

        for(int i = 0; i < array.Length; i++)
        {
            array2[arrayLength - (i + 1)] = array[i];
        }

        Array.Copy(array2, array, arrayLength);

    }
}

希望对你有帮助

于 2013-04-04T04:10:41.767 回答