C# 直接更改数组中包含的数组
我有大约20个字符串数组,我想在它们上执行相同的操作(将特定的条目更改为另一个值)。因此,我已经编写了一个方法:C# 直接更改数组中包含的数组,c#,arrays,C#,Arrays,我有大约20个字符串数组,我想在它们上执行相同的操作(将特定的条目更改为另一个值)。因此,我已经编写了一个方法: public static void ChangeArray<T>(ref T[,] laoArrOriginal, String lvsToChange, String lvsChangeValue) { int dimRow = laoArrOriginal.GetLength(0); int dimCol = laoArrOrigin
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;
}
}
}
}
并在for循环中更改它们:
for (int i = 0; i < lcsStringArrays.Length; i++ )
{
ChangeArray(ref lcsStringArrays[i], l_dblRecordCount, 1);
}
for(int i=0;i
但是,在循环单个元素array1、array2等之后,它们不会发生变化,而元素lcsStringArrays[i]具有正确的内容
我做错了什么
编辑:
我解决了这个“问题”。我在ChangeArray中的代码是错误的。我插入了我现在使用的代码;对于这个案例,有人来这里寻找类似的解决方案。
无论如何谢谢你 看起来我们也需要ChangeArray方法的实现。在高层,我认为您正在更改传入的变量(数组)的值。无论如何,您为什么需要将其设置为
ref
?您不是在更改数组本身的值,而是在更改数组所包含的内容。为此,您不需要ref
。看起来我们也需要ChangeArray方法的实现。在高层,我认为您正在更改传入的变量(数组)的值。无论如何,您为什么需要将其设置为ref
?您不是在更改数组本身的值,而是在更改数组所包含的内容。您不需要使用ref
。我怀疑问题在于ChangeArray
正在更改laoArrOriginal
的值,这会更改“外部”数组,而不会改变“内部”数组对象的先前值。但目前还不清楚……我怀疑问题在于ChangeArray
正在更改laoArrOriginal
的值,这会更改“外部”数组,而不会改变“内部”数组对象的先前值。但目前还不清楚。。。
for (int i = 0; i < lcsStringArrays.Length; i++ )
{
ChangeArray(ref lcsStringArrays[i], l_dblRecordCount, 1);
}