Вы просто меняете локальную переменную, а не элемент в списке. Для этого вы хотите ConvertAll
, который создает новый список / массив:
int[] ints = new int[] { 1,2 };
int[] newArr = Array.ConvertAll<int,int>(ints, AddTen);
с:
static int AddTen(int i)
{
return i+10;
}
Это также можно записать анонимным методом:
int[] newArr = Array.ConvertAll<int,int>(ints,
delegate (int i) { return i+ 10;});
Или в C # 3.0 как лямбда:
int[] newArr = Array.ConvertAll(ints, i=>i+10);
Кроме этого ... цикл for
:
for(int i = 0 ; i < arr.Length ; i++) {
arr[i] = AddTen(arr[i]); // or more directly...
}
Но, так или иначе, вам придется получить значение из вашего метода. Если вы не измените подпись, вы не сможете.