我的函数返回一个包含2个值的int数组 让我们说res [0]和res [1]
当我多次在for循环中调用数组时,并且当我将结果存储在另一个数组中时,在每次迭代中结果都会覆盖新结果。
如果第一个调用返回[0,1],数组将[0,1]存储在索引[0]和[1],这很好,但是当我再次调用该函数时,新的结果存储在相同的索引[0]和[1] 我怎么能避免这种情况?
功能代码:
private void MatrixMul(string subInput, int[,] key, int [] result)
{
for (int row = 0; row < key.GetLength(0); row++)
{
for (int col = 0; col < key.GetLength(0); col++)
{
result[row]+= key[row, col] * AtoZ.IndexOf(subInput[col]);
}
}
}
致电代码:
for (int i = 0; i < outPut.Length; i++)
{
MatrixMul(outPut[i], key,encChars);
}
例如,我的outPut包含以下内容:&#34; TH&#34;,&#34; IS&#34;,&#34; AT&#34; 当我用数组的第一个元素&#34; TH&#34;调用函数时,它会转换&#34; T&#34;到它的等价数字并应用一些计算和相同的&#34; H&#34;。让我们说最后的答案是20,对于&#34; T&#34; &#34; H&#34;。 问题是每次encChars都会将值存储在索引0和1: encChars [0] = 20 encChars [1] = 30 当我再次调用该函数时,它会将新值存储在0和1 ....这是因为我没有在每次调用时更改encChars的索引值,所以我该怎么做? / p>
答案 0 :(得分:0)
如果要累积给定数组中的值,则不要在方法中创建新值,而是将其声明为参数并修改值。