合并2D数组

时间:2016-09-23 12:02:28

标签: c# arrays

我有一个2D数组[,],我想将数组[0]行设置为等于数组[1]行。

最初我认为array [0] = array [1]会将所有第0行变量设置为等于第1行变量。但它没有用。

所以我试过了,

for (int i = 0; i < itemList.Length; i++)
{
    itemList [0,i] = itemList [1,i];
} 

但它会“超出范围”错误。

我觉得我错过了一种非常优雅的方式,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

显然,循环将超出范围。

对于2D数组,itemList.Length = number of rows * number of columns

您可以尝试以下方法:

int rowLength = itemList.GetLength(0);
int colLength = itemList.GetLength(1);
for (int j = 0; j < colLength; j++)
{
    itemList[0, j] = itemList[1, j];
}

通过打印出值来检查:

for (int i = 0; i < rowLength; i++)
{
     for (int j = 0; j < colLength; j++)
     {
         Console.Write(string.Format("{0} ", itemList[i, j]));
     }
     Console.Write(Environment.NewLine + Environment.NewLine);
}

希望这有帮助!!!

[假设itemList包含int个值]

答案 1 :(得分:1)

尝试itemList.GetLength(0)获取第一项计数和 itemList.GetLength(1)用于2D数组中的第二项计数。

修改您的代码,如:

select *
from
(
select name, id, phone, age, sex, row_number() over(partition by phone order by id desc) as stu_ord
from student
)
where stu_ord = 1