Обратные элементы в массиве

Я настраиваю массив, и мне бы хотелось создать метод, который возвращает массив с элементами в обратном порядке. например, если 10 слотов, то array1[9] = 6 а затем array2[0] = 6 .
Я полагаю, что мне нужно вернуть массив – как бы я это сделал?
И я не знаю, как отменить и добавить в другой массив.
Спасибо!

  int[] arr = {43, 22, 1, 44, 90, 38, 55, 32, 31, 9}; Console.WriteLine("Before"); PrintArray(arr); Console.WriteLine("After"); Reverse(arr); Console.ReadKey(true); } static int[] Reverse(int[] array) { for (int i = array.Length; i < 1; i--) { int x = 0; array[i] = array[x++]; Console.WriteLine(array[i]); } } static void PrintArray(int[] array) { for (int j = 0; j < array.Length; j++) { Console.Write(array[j] + " "); } Console.WriteLine(""); 

    Вы можете использовать Array.Reverse

    Пример из вышеприведенной строки

     public static void Main() { // Creates and initializes a new Array. Array myArray=Array.CreateInstance( typeof(String), 9 ); myArray.SetValue( "The", 0 ); myArray.SetValue( "quick", 1 ); myArray.SetValue( "brown", 2 ); myArray.SetValue( "fox", 3 ); myArray.SetValue( "jumps", 4 ); myArray.SetValue( "over", 5 ); myArray.SetValue( "the", 6 ); myArray.SetValue( "lazy", 7 ); myArray.SetValue( "dog", 8 ); // Displays the values of the Array. Console.WriteLine( "The Array initially contains the following values:" ); PrintIndexAndValues( myArray ); // Reverses the sort of the values of the Array. Array.Reverse( myArray ); // Displays the values of the Array. Console.WriteLine( "After reversing:" ); PrintIndexAndValues( myArray ); } public static void PrintIndexAndValues( Array myArray ) { for ( int i = myArray.GetLowerBound(0); i < = myArray.GetUpperBound(0); i++ ) Console.WriteLine( "\t[{0}]:\t{1}", i, myArray.GetValue( i ) ); } 

    Вы должны использовать метод расширения Reverse

     int[] arr = { 43, 22, 1, 44, 90, 38, 55, 32, 31, 9 }; Console.WriteLine("Before"); PrintArray(arr); Console.WriteLine("After"); PrintArray(arr.Reverse().ToArray()); 

    Или, если вы не возражаете против модификации исходной последовательности, вы можете использовать Array.Reverse

     int[] arr = { 43, 22, 1, 44, 90, 38, 55, 32, 31, 9 }; Console.WriteLine("Before"); PrintArray(arr); Array.Reverse(arr); Console.WriteLine("After"); PrintArray(arr); 

    Вы можете изменить массив путем замены элементов с обоих концов массива до достижения середины.

     for(int start = 0, end = arr.Length - 1; start < arr.Length/2; start++, end--) { swap(arr[start], arr[end]); } 
      int a; Console.WriteLine("Enter the array length"); a=int.Parse(Console.ReadLine()); Console.WriteLine("enter the array element"); int[] sau = new int[a]; for (int i = 0; i < a; i++) { sau[i] = int.Parse(Console.ReadLine()); } for (int i =a.Length-1 ; i < 0;i--) { Console.WriteLine(sau[i]); } Console.ReadLine(); } } 

    }

    Создайте новый массив с той же длиной, что и старый массив, и обратное выполняется так

     index -> new index 0 -> length - 1 1 -> length - 1 - 1 2 -> length - 1 - 2 .. i -> length - 1 - i 

    так что это переводит на этот код

     int[] myVariable = new int[] { 1, 2, 3, 4, 5 }; int[] reversedVariable = new int[myVariable.Length](); for (int i = 0; i < myVariable.Length ; i++) { reversedVariable[myVariable.Length - 1 - i] = myVariable[i]; } return reversedVariable; 
      public class MyList : IEnumerable { private T[] arr; public int Count { get { return arr.Length; } } public void Reverse() { T[] newArr = arr; arr = new T[Count]; int number = Count - 1; for (int i = 0; i < Count; i++) { arr[i] = newArr[number]; number--; } } }