我正在制作一个将数据存储在2D数组中的程序。我希望能够从这个数组中删除行。我无法弄清楚为什么这段代码不起作用:
for (int n = index; n < a.GetUpperBound(1); ++n)
{
for (int i = 0; i < a.GetUpperBound(0); ++i)
{
a[i, n] = a[i, n + 1];
}
}
有人可以帮帮我吗?我希望删除一行并将其下面的所有行拖放到一个地方。三江源!
答案 0 :(得分:1)
如果要删除项目
,则需要创建新数组尝试这样的事情
var arrayUpdated = new string[a.GetUpperBound(1)][a.GetUpperBound(0)-1];
for (int n = index; n < a.GetUpperBound(1); n++)
{
for (int i = 0; i < a.GetUpperBound(0); i++)
{
arrayUpdated [i, n] = a[i, 1];
}
}
答案 1 :(得分:1)
这里的嵌套for循环方法效果很好:https://stackoverflow.com/a/8000574
这是一个将上面的[,]数组方法的外部循环转换为使用linq的方法。如果您在遍历期间也使用linq执行其他操作,则仅建议使用linq。
s= "query : {'$and': [{'$or': [{'Component': 'pfr'}, {'Component': 'ng-pfr'}, {'Component': 'common-flow-table'}, {'Component': 'media-mon'}]}, {'Submitted-on': {'$gte': datetime.datetime(2016, 2, 21, 0, 0)}}, {'Submitted-on': {'$lte': datetime.datetime(2016, 2, 28, 0, 0)}}]}
"
使用Enumerable.Range迭代所有行,如https://stackoverflow.com/a/18673845
中所做答案 2 :(得分:-1)
不应该++我是i ++? ++ i在执行矩阵运算(即预增量)之前递增