Asp.net_选择性的保留DataTable中的列
//数据
DataTable dtObject = dt;
//保留列
string[] saveColumns = new string[5];
saveColumns[0] = "X";//保留列1
saveColumns[1] = "XX";//保留列2
saveColumns[2] = "XXX";
saveColumns[3] = "XXXX";
saveColumns[4] = "XXXXX";
//移除不需要的列
for (int i = dtObject.Columns.Count-1; i >= 0; i--)//注意此处,一般习惯用i++则会引发OutOfIndex异常,由于部分列被移除,列索引减少,i++会超出不断减少的索引总数,注意。
{
//移除指示器
bool remove = true;
//是否在保留列中
for (int j = 0; j < saveColumns.Length; j++)
{
if (dtObject.Columns[i].ColumnName == saveColumns[j])
{
//保留列不移除
remove = false; break;
}
}
if (remove)
{
//移除列
dtObject.Columns.Remove(dtObject.Columns[i].ColumnName);
}
}
return dtObject;
//数据
DataTable dtObject = dt;
//保留列
string[] saveColumns = new string[5];
saveColumns[0] = "X";//保留列1
saveColumns[1] = "XX";//保留列2
saveColumns[2] = "XXX";
saveColumns[3] = "XXXX";
saveColumns[4] = "XXXXX";
//移除不需要的列
for (int i = dtObject.Columns.Count-1; i >= 0; i--)//注意此处,一般习惯用i++则会引发OutOfIndex异常,由于部分列被移除,列索引减少,i++会超出不断减少的索引总数,注意。
{
//移除指示器
bool remove = true;
//是否在保留列中
for (int j = 0; j < saveColumns.Length; j++)
{
if (dtObject.Columns[i].ColumnName == saveColumns[j])
{
//保留列不移除
remove = false; break;
}
}
if (remove)
{
//移除列
dtObject.Columns.Remove(dtObject.Columns[i].ColumnName);
}
}
return dtObject;