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;