C# 简单循环和错误元素
以下是一些代码:C# 简单循环和错误元素,c#,arrays,list,C#,Arrays,List,以下是一些代码: foreach (int[] temp in intList) { string str = GenerateGamma(0,1,10,temp); if (str == "924890128") answer.Add(temp); } 其中,在intList中有int数组,每个数组都具有以下属性:array[1]=1(数组长度为10)。嗯,当我查看答案时,我看到了数组14660932758,所以array[1]=4。 这是generatega
foreach (int[] temp in intList)
{
string str = GenerateGamma(0,1,10,temp);
if (str == "924890128")
answer.Add(temp);
}
其中,在intList
中有int数组,每个数组都具有以下属性:array[1]=1
(数组长度为10)。嗯,当我查看答案时,我看到了数组14660932758
,所以array[1]=4
。
这是generategama()
的代码
publicstaticstringgenerategama(inti0,intj0,intm,int[]b)
{
常数ct=新常数();
int[]伽马=新的int[9];
int[]内部数组=b;
字符串结果=”;
温度i=i0,温度j=j0,温度i=0;
对于(int t=1;t数组是引用类型,如果在generategama()
方法中更改传递的数组,则原始数组也将更改
您的数组已更改,因为在方法内部您有:
int[] inside_array = b;
在这里,您不需要创建传递数组的副本,只需要创建数组引用的副本。因此,您有一个数组和两个引用(b
和inside\u array
),它们指向相同的数组:b[0]=1;
和inside\u array[0]=1;
执行相同的操作-它们修改相同的数组
如果要复制:
int[] inside_array = new int[b.Length];
for (int a = 0; a < inside_array.Length; a++)
{
inside_array[a] = b[a];
}
int[]内部数组=新的int[b.Length];
for(int a=0;a
在此之后,您将有两个数组,当您更改一个数组时,另一个数组将不会更改。数组是引用类型,如果您在generategama()
方法中更改传递的数组,则原始数组也将更改
您的数组已更改,因为在方法内部您有:
int[] inside_array = b;
在这里,您不需要创建传递数组的副本,只需要创建数组引用的副本。因此,您有一个数组和两个引用(b
和inside\u array
),它们指向相同的数组:b[0]=1;
和inside\u array[0]=1;
执行相同的操作-它们修改相同的数组
如果要复制:
int[] inside_array = new int[b.Length];
for (int a = 0; a < inside_array.Length; a++)
{
inside_array[a] = b[a];
}
int[]内部数组=新的int[b.Length];
for(int a=0;a
在此之后,您将有两个数组,当您更改一个数组时,另一个数组将不会更改。Show generategama method.I添加该方法的代码。Show generategama method.I添加该方法的代码。