在C#中删除2D字符串数组的行

时间:2011-03-21 10:21:36

标签: c# arrays string delete-row

我正在制作一个将数据存储在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];
     }
}

有人可以帮帮我吗?我希望删除一行并将其下面的所有行拖放到一个地方。三江源!

3 个答案:

答案 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在执行矩阵运算(即预增量)之前递增