欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.net_选择性的保留DataTable中的列

程序员文章站 2022-03-13 11:44:48
[csharp]  //数据     DataTable dtObject = dt;    //保留列   &n...
[csharp] 

//数据    

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;