2014-12-06 5 views
-4

У меня есть строковый массив из 8 элементов, например AB CD EF GH. И я хотел бы делать сделать следующий порядок:изменение значений в индексах массива C#

BA DC FE HG

Основная идея заключается в том, чтобы изменить значение по индексу:
1 с 0, 0 1
, 3 с 2, 2 с 3
, 5 с 4, 4 с 5
, 7 с 6, 6 с 7

..... для любой заданной длины или содержимого массива.

Благодарим за помощь.

+0

Вы можете сделать это, используя цикл 'for'. Что вы пробовали? – CodeCaster

ответ

0

Просто доступ к массиву с помощью xor 1 по индексу, таким образом, вы не должны двигаться или что-либо создать новый массив:

int n = arr[index^1]; 

Если вы хотите создать новый массив, вы можете просто скопировать массив и получить доступ к нему, что путь от источника:

int[] newArr = new int[arr.Length]; 
for (int i = 0; i < arr.Length; i++) { 
    newArr[i] = arr[i^1]; 
} 

Примечание: это предполагает, что есть четное число элементов в массиве. Если будет нечетное количество элементов, нет ничего, чтобы обменивать последний элемент.

Смежные вопросы