我對C#相當陌生,我需要一些幫助將乘以2d數組中的兩個數字。我有這樣的代碼:在C#中乘以二維數組
int [,] myArray = {{50,74},{9,88},{75,53},{46,98},{100,99}};
我需要乘以每對,例如50 * 0.4和74 * 0.6,然後從每個答案加起來得到我的總和和其他人的相同。任何幫助將不勝感激,謝謝
我對C#相當陌生,我需要一些幫助將乘以2d數組中的兩個數字。我有這樣的代碼:在C#中乘以二維數組
int [,] myArray = {{50,74},{9,88},{75,53},{46,98},{100,99}};
我需要乘以每對,例如50 * 0.4和74 * 0.6,然後從每個答案加起來得到我的總和和其他人的相同。任何幫助將不勝感激,謝謝
只需執行以下操作:
double[] result = new double[myArray.GetLength(0)];
for(int i = 0; i < myArray.GetLength(0); ++i)
result[i] = myArray[i, 0] * 0.4 + myArray[i, 1] * 0.6;
// result now contains what you need
多維「2D」陣列的第一索引指的是行的位置(每個組成陣列)和第二個索引是指柱位置(每個組成陣列中的位置)。
GetLength(0)
表示獲取多維數組的第0維長度。在這種情況下,它是5,因爲數組中有五行。另一方面GetLength(1)
將返回2,因爲有2列。
首先,通過所有對,我們需要知道你的數組有多長。爲了達到這個目的,我們可以使用myArray.GetLength(0)
。這將返回第一維中元素的總數。僅使用Length
將返回總數元素的數量,這不是我們想要的。
一旦我們有了,我們可以通過經典的for
循環遍歷所有對。
對於每一對,我們可以將第一個元素myArray[i,0]
乘以0.4d
,將另一個myArray[i,1]
乘以0.6d
。這裏的d
表示數據類型爲double
。 int
這裏不會這樣做,因爲我們有一個帶小數的數字。
我們只需將這兩個操作的結果相加,並將其添加爲最終列表中的新條目。
下面的代碼:
int[,] myArray = { { 50, 74 }, { 9, 88 }, { 75, 53 }, { 46, 98 }, { 100, 99 } };
var result = new List<double>();
for (int i = 0; i < myArray.GetLength(0); i++)
{
result.Add(myArray[i,0] * 0.4d + myArray[i,1] * 0.6d);
}
如果你的最終名單明確需要是一個數組,你可以使用它代替:
int arrayLength = myArray.GetLength(0);
double[] result = new double[arrayLength];
for (int i = 0; i < arrayLength; i++)
{
result[i] = myArray[i, 0] * 0.4d + myArray[i, 1] * 0.6d;
}
這幾乎是同樣的事情,但我們首先需要用我們集合的大小來定義一個數組。
'列表
@AlexeiLevenkov公平點,更新了答案。 – 2015-03-02 22:36:05
你正在做一個整數乘法,這些數字將被截斷。長度也將是10,這將創建一個IndexOutOfBounds異常。 – 2015-03-02 22:33:28
@ Pierre-LucPineault哎呀,很抱歉。固定! – 2015-03-02 22:34:21