如何在 C# 中使用三种不同的方法反转数组

How to reverse an array using three separate methods in C#

我目前正在阅读一本电子书以学习 C#,但我目前正处于卡住的位置。我觉得一旦我完成并理解了下一步,它会真正加速我的理解和学习,因为我接下来要 classes。

我目前面临的挑战我必须做到以下几点:

这是我到目前为止得到的代码,但我对如何创建反向方法非常困惑,我觉得我目前拥有的也不是所需要的。我只需要在此处进行额外的推动,使其点击到位并让我获得所需的理解。如果您愿意,可以随意将提示/技巧/建议放在与解决方案相反的位置。

谢谢大家

使用系统;</p> <p>命名空间Using_methods_to_reverse_an_array { class 程序 { 静态 int[] CreateArray() { int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; return数组; } 静态无效 PrintNumbers() { foreach(CreateArray() 中的整数) { Console.WriteLine(数字); } } 静态无效主要(字符串[]参数) { int[] 数字 = CreateArray(); 打印数字(); Console.ReadLine(); } } }

static int[] Reverse(int[] arr){
    int [] arr2 = new int[arr.Length];
    for (int i = arr.Length - 1, i2 = 0; i >= 0; i--, i2++)
    {
        arr2[i2] = arr[i];
    }
    return arr2;
}


static void PrintNumbers(int[] arr)
{
  foreach (int numbers in arr)
  {
      Console.WriteLine(numbers);
  }
}

static void Main(){
    int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int[] arr2 = Reverse(arr);
    PrintNumbers(arr2);
}

打印

10
9
8
7
6
5
4
3
2
1

也许我理解错了,但我认为应该这样做:

    class Program
        {
            static int[] CreateArray()
            {
                int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
                return array;
            }
//I changed this to receive an input array
            static void PrintNumbers( int[] inputArray)
            {
                foreach (int numbers in inputArray)
                {
                    Console.WriteLine(numbers);
                }
            }
//this function should reverse any array passed to it
            static void ReverseArray(int[] inputArray)
            {
                int len = inputArray.Length;
                int[] newArray = new int[len];
                foreach (int i in inputArray)
                {
                    newArray[i] = inputArray[len - 1];
                    len--;
                }
            }
            static void Main(string[] args)
            {
                int[] numbers = CreateArray();
                PrintNumbers(numbers);
                ReverseArray(numbers);
                //Console.ReadLine();
            }
        }

非常感谢大家的帮助,在进行了更多谷歌搜索和测试后,我的最终产品是这样的:

using System;

namespace Using_methods_to_reverse_an_array
{
    class Program
    {
        static int[] CreateArray()
        {
            int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            return array;
        }

        static void PrintNumbers(int[] array)
        {
            foreach (int numbers in array )
            {
                Console.WriteLine(numbers);
            }
        }

        static void ReverseNumbers(int[] array)
        {
            for (int i = 0; i < array.Length/2; i++)
            {
                int temp = array[i];
                array[i] = array[array.Length - i - 1];
                array[array.Length - i - 1] = temp;
            }

        }

        static void Main(string[] args)
        {
            int[] numbers = CreateArray();
            ReverseNumbers(numbers);
            PrintNumbers(numbers);
            Console.ReadLine();
        }
    }
}