2016-05-04 58 views
-2

我想問如何從數組c#中的所有值減去一些值?如何從數組c中的每個值減去某些值#

List<int> array = new List<int>(); 
array.Add(4,5,3) 
array minus 1; 
for (int z = 0; z < N; z++) 
{ 
    Console.WriteLine(array[z]); 
} 
Console.ReadLine(); 

在輸出我想有這樣的:3,4,2

其實我想這樣做的方式,我可以改變的陣列的工作不只是打印出數組減1.

+2

是什麼讓你從1減去陣列[Z]? – Steve

+0

看到我的答案,它應該更新您的數組與新的減法值 – Mostafiz

回答

0

我想首先重命名變量,名稱爲array的整數列表不好。所以讓我把這個變量稱爲ListInt。而不是使用-1,最好使用名爲someValue的變量。現在看到的代碼,它是如何工作的:

List<int> ListInt = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
int someValue = -1; 
ListInt = ListInt.Select(x => x - someValue).ToList(); 
// now the ListInt contains all the values as required 
// Print the values using 
Console.WriteLine(String.Join(",",ListInt)); 
+1

非常感謝。它有幫助。 – Sam

+0

dowj投票的具體原因是什麼?或者我的隱藏的敵人... –

0
List<int> array = new List<int>(); 
array.Add(2); 
array.Add(3); 
array.Add(4); 
for (int z = 0; z < array.Count; z++) 
{ 
    array[z] = array[z] - 1; 
} 
Console.WriteLine(array[0]); 
Console.ReadLine(); 
+0

什麼是陣列減1;'? –

2

多種方法:

一個普通的foreach環:

foreach(int i in array) 
    Console.WriteLine(i - 1); 

一個for循環:

for(int i = 0; i < array.Count; i++) 
    Console.WriteLine(array[i] - 1); 

List.ForEach

array.ForEach(i => Console.WriteLine(i - 1)); 

LINQ

var arrayMinusOne = array.Select(i => i - 1); 
foreach(int i in arrayMinusOne) 
    Console.WriteLine(i); 

您可以使用此arrayMinusOne查詢多次(但請注意,這將是每一個執行當你使用它)。或者您可以使用arrayMinusOne.ToList()ToArray創建新集合。如果要修改原來的列表中,您可以使用for循環:

for (int i = 0; i < array.Count; i++) 
    array[i] = array[i] - 1; 

或重新分配arrayMinusOne.ToList()array變量。請注意,列表不是數組。

+0

對不起,我的意思是略有不同。 – Sam

+0

@Sam:我試圖覆蓋所有的情況,看看 最後一節f.e. 'arrayMinusOne.ToList()' –

+0

你是對的謝謝 – Sam

0

按照自己的風格,以幫助您瞭解,這將顯示你想要什麼:

for (int z = 0; z < array.Length; z++) 
    Console.WriteLine(array[z]-1); 

但是,這將顯示前居然減去1從數據導致數據:

for (int z = 0; z < array.Length; z++) 
    array[z]--; 

for (int z = 0; z < array.Length; z++) 
    Console.WriteLine(array[z]); 
+0

對不起,我想在打印數組之前進行一次性替換,以便我可以進一步處理它 – Sam

+0

@sam然後我的答案的下一個塊爲你做。它從你數組中的每個值中減去一個('array [z] --'與'array [z] - = 1'相同,與array [z] = array [z] - 1'相同)。然後你可以對結果數據應用任何東西(如顯示) –

+0

謝謝你是對的 – Sam

0

LINQ的溶液:

List<int> array = new List<int>() { 
    4, 5, 3, 
}; 

// "3, 4, 2" 
Console.Write(String.Join(", ", array.Select(item => item - 1))); 

Console.ReadLine(); 

如果你想要把每個項目在單獨一行

// 3 
// 4 
// 2 
Console.Write(String.Join(Environment.NewLine, array.Select(item => item - 1))); 
+0

謝謝你的回答 – Sam

0

此代碼是在VB.Net,但有邏輯:

Dim array As New List(Of Integer)() 
    array.Add(4) 
    array.Add(5) 
    array.Add(3) 
    Dim resta = -1 
    For index = 0 To array.Count - 1 
     array(index) = array(index) - 1 
     Console.WriteLine(array(index)) 
    Next 
    Console.ReadLine() 
+0

謝謝,但我想要的東西不同 – Sam