读书人

100分求算法遍历报表

发布时间: 2013-07-04 11:45:55 作者: rapoo

100分求算法遍历表格
因为某种情况 现在后台生成了一个datatale 然后 在现在想要遍历它的行列 ,假如某一个单元格包含一个特定的字符串,那么 这一行就留着,如果这一行所有的列都不敢这个字符串 那么这一行就要被删除,求算法 table
[解决办法]
假定特定字符串为"芝麻":

dt.DefaultView.RowFilter = string.Join(" OR ", dt.Columns.Cast<DataColumn>().Select(x => x.ColumnName + " like '*芝麻*'").ToArray());

取dt.DefaultView或dt.DefaultView.ToTable()即可。
[解决办法]
你就遍历吧,涉及到删除,就从后往前遍历,两层循环,先循环row,然后对每个row循环col
[解决办法]


string keyword = "关键字";
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
bool isExists = false;
foreach (DataColumn col in dt.Columns)
{
var obj = dt.Rows[i][col];
if (obj == null)
continue;
if (obj.ToString().Contains(keyword))
{
isExists = true;
break;
}
}
if (!isExists)
dt.Rows.RemoveAt(i);
}


[解决办法]
引用:
Quote: 引用:

你就遍历吧,涉及到删除,就从后往前遍历,两层循环,先循环row,然后对每个row循环col

循环遍历不行的,用for的话 最后删除的只有奇数行,用foreach 删除的话 报错提示指针发生改变什么什么的


看16楼,从后往前删

读书人网 >asp.net

热点推荐