我有大约20个字符串数组,我想在其上执行相同的操作(将特定条目更改为另一个值)。因此我已经写了一个方法:
public static void ChangeArray<T>(ref T[,] laoArrOriginal, String lvsToChange, String lvsChangeValue)
{
int dimRow = laoArrOriginal.GetLength(0);
int dimCol = laoArrOriginal.GetLength(1);
for (int i = 0; i < dimRow; i++)
{
for (int j = 0; j < dimCol; j++)
{
if (laoArrOriginal[i, j] == lvsToChange)
{
laoArrOriginal[i, j] = lvsChangeValue;
}
}
}
}
我没有用另一个数组名称调用20次此函数,而是考虑创建一个包含20个数组的数组lcsStringArrays
String[][,] lcsStringArrays = new String[][,]{array1,array2,...}
并在for循环中更改它们:
for (int i = 0; i < lcsStringArrays.Length; i++ )
{
ChangeArray(ref lcsStringArrays[i], l_dblRecordCount, 1);
}
但循环后,单个元素array1,array2等不变,而元素lcsStringArrays [i]具有正确的内容。
我做错了什么?
编辑: 我解决了这个“问题”。我在ChangeArray中的代码是错误的。我插入了我现在使用的代码;有人来这里寻找类似的解决方案。 不管怎样,谢谢!
答案 0 :(得分:1)
看起来我们也需要实现ChangeArray方法。在高层,我认为你正在改变传入的变量(数组)的值。为什么你还需要它ref
?您没有更改数组本身的值,而是更改数组所拥有的内容。为此,您不需要ref
。