当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.net_选择性的保留DataTable中的列

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

2018年03月30日  | 移动技术网IT编程  | 我要评论
[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;

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网