直接更改数组中包含的数组

时间:2013-12-13 09:04:50

标签: c# arrays

我有大约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中的代码是错误的。我插入了我现在使用的代码;有人来这里寻找类似的解决方案。 不管怎样,谢谢!

1 个答案:

答案 0 :(得分:1)

看起来我们也需要实现ChangeArray方法。在高层,我认为你正在改变传入的变量(数组)的值。为什么你还需要它ref?您没有更改数组本身的值,而是更改数组所拥有的内容。为此,您不需要ref