[Csharp] // data DataTable dtObject = dt; // reserved column string [] saveColumns = new string [5]; saveColumns [0] = "X "; // keep column 1 saveColumns [1] = "XX"; // keep Column 2 saveColumns [2] = "XXX"; saveColumns [3] = "XXXX "; saveColumns [4] = "XXXXX"; // remove unnecessary columns for (int I = dtObject. columns. count-1; I> = 0; I --) // note that when I ++ is used, the OutOfIndex exception occurs. Because some columns are removed, the column index is reduced, I ++ will exceed the total number of continuously reduced indexes. Note. {// Remove indicator bool remove = true; // whether it is in the reserved column for (int j = 0; j <saveColumns. length; j ++) {if (dtObject. columns [I]. columnName = saveColumns [j]) {// keep columns do not remove = false; break;} if (remove) {// remove column dtObject. columns. remove (dtObject. columns [I]. columnName) ;}}return dtObject; // data DataTable dtObject = dt; // reserved column string [] saveColumns = new string [5]; saveColumns [0] = "X "; // keep column 1 saveColumns [1] = "XX"; // Keep Column 2 saveColumns [2] = "XXX"; saveColumns [3] = "XXXX"; saveColumns [4] = "XXXXX "; // remove unnecessary columns for (int I = dtObject. columns. count-1; I> = 0; I --) // note that when I ++ is used, the OutOfIndex exception occurs. Because some columns are removed, the column index is reduced, I ++ will exceed the total number of continuously reduced indexes. Note. {// Remove indicator bool remove = true; // whether it is in the reserved column for (int j = 0; j <saveColumns. length; j ++) {if (dtObject. columns [I]. columnName = saveColumns [j]) {// keep columns do not remove = false; break;} if (remove) {// remove column dtObject. columns. remove (dtObject. columns [I]. columnName) ;}} return dtObject;