100分求算法遍历表格
因为某种情况 现在后台生成了一个datatale 然后 在现在想要遍历它的行列 ,假如某一个单元格包含一个特定的字符串,那么 这一行就留着,如果这一行所有的列都不敢这个字符串 那么这一行就要被删除,求算法
------解决方案--------------------假定特定字符串为"芝麻":
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);
}
------解决方案--------------------