2015-05-09 3 views
0

Есть ли способ сделать что-то вроде этого ниже? Я инициализирую массив int, все элементы которого равны -1. Есть ли способ присвоить новое значение всем элементам, как показано ниже?Назначение нового значения для всех элементов массива

int[] arr = {-1,-1,-1,-1,-1,-1,-1}; 
arr = {0,1,2,5,7,18,20}; 

Что я пытался сделать это ниже. Существует много case с (я просто у три здесь) я был близко первый раз ... Он должен быть в линиях arr = new[]{0,1,2,5,7,18,20}; ниже

private int[] getComboArray(int toLocation) 
{ 
    int[] arr = new int[7]; 
    switch (toLocation) 
    { 
     case 0: 
      arr = {0,1,2,5,7,18,20} ; //<------- 
      break; 
     case 1: 
      arr = {2,3,2,4,4,19,20} ; //<------- 
      break; 
     case 2: 
      arr = {4,3,2,5,4,11,10} ; //<------- 
      break; 
    } 

    return arr; 
} 
+0

Почему вы не инициализировать как 'ИНТ [] обр = {0,1,2,5,7,18,20};'? – Orifjon

+1

Ты это уже делаешь? : S – adaam

+0

Я думал инициализировать его ко всем -1, тогда запускался 'switch()' и в зависимости от того, какое значение оценивается, массив int будет иметь разные значения. –

ответ

0
//you can overwrite your previous array like this 
int[] arr = {-1,-1,-1,-1,-1,-1,-1}; 
arr = new int[] {0,1,2,5,7,18,20}; 
0

Попробуйте это:

int[] arr = {-1,-1,-1,-1,-1,-1,-1}; 
new int[] {0,1,2,5,7,18,20}.CopyTo(arr, 0); 

Сохранен адрес исходного массива arr.

0

Честно говоря, в вашем вопросе недостаточно информации, чтобы действительно определить, что вам нужно выполнить. Технически, это довольно легко присвоить новые значения для отдельных элементов в массиве, например, так:

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

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

int[] arr = new int[] { 0, 1, 2, 5, 7, 18, 20 }; 

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

int[] sourceArray = null; 
// Something happens to fill your source array. 
int[] destArray = new int[7]; 
Array.Copy(sourceArray, destArray, destArray.Length); 
0

вы можете asssig n новые значения, использующие ключевое слово new.

int[] arr = {-1,-1,-1,-1,-1,-1,-1}; 
arr = new[] {0,1,2,5,7,18,20}; // 0,1,2,5,7,18,20 

С помощью этой функции ваша функция будет выглядеть ниже.

private int[] getComboArray(int toLocation) 
{ 
    int[] arr = new int[7]; 
    switch (toLocation) 
    { 
     case 0: 
      arr = new [] {0,1,2,5,7,18,20} ; //<-- 
      break; 
     case 1: 
      arr = new []{2,3,2,4,4,19,20} ; //<-- 
      break; 
     case 2: 
      arr =new [] {4,3,2,5,4,11,10} ; //<-- 
      break; 
    } 

    return arr; 
} 

Если вы хотите добавить новые элементы текущего массива, вы можете создать List новых элементов и добавить массив к нему, после того, что вы можете преобразовать его обратно в массив.

int[] arr = {-1,-1,-1,-1,-1,-1,-1}; 
var concat = new List<int> {0, 1, 2, 5, 7, 18, 20}; 
concat.AddRange(arr); 
arr = concat.ToArray(); // -1,-1,-1,-1,-1,-1,-1,0,1,2,5,7,18,20 
0
int[] arr = {-1,-1,-1,-1,-1} 
int[] arrTT = {0,1,2,5,7,18,20} 

for(int i=0; i<arr.Length; i++) 
{ 
    arr[i]=arrTT[i]; 
}