我有一个2D数组[,],我想将数组[0]行设置为等于数组[1]行。
最初我认为array [0] = array [1]会将所有第0行变量设置为等于第1行变量。但它没有用。
所以我试过了,
for (int i = 0; i < itemList.Length; i++)
{
itemList [0,i] = itemList [1,i];
}
但它会“超出范围”错误。
我觉得我错过了一种非常优雅的方式,任何帮助都会受到赞赏。
答案 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