读书人

怎么削除DataTable中的重

发布时间: 2012-01-29 21:39:32 作者: rapoo

如何削除DataTable中的重
我在一DataTable中合并了若干表的,些表是相同的,是合并之后的table中的字段有重值,在要削除重值,因量很大,教大家有有高效的方法

[解决办法]
// 过滤前的数据表
DataTable table = ...;

// 过滤后的数据表
DataTable tagetTable = table.Clone();

// 注意:sFormater中的分隔符用数据表中不会出现的字符,现假定为 ", "
// 根据运行效率自己选定用何方法

// 方法1
string sFormater = "{0}, {1} ";
string sKeys = null;
string sPrevKeys = null;
// Key项目排序
DataRow[] rows = table.Select( " ", "Key0, Key1 ");
foreach (DataRow row in rows)
{
sKeys = string.Format(sFormater, row[ "Key0 "].ToString(), row[ "Key1 "].ToString());
if (!sKeys.Equals(sPrevKeys))
{
tagetTable.ImportRow(row);
}
sPrevKeys = sKeys;
}

// 方法2
string sSelectFormater = "{0}, {1} ";
foreach (DataRow row in table.Rows)
{
if (tagetTable.Select(string.Format(sSelectFormater, "Key0 ", "Key1 ")).Length == 0)
{
tagetTable.ImportRow(row);
}
}

table = tagetTable;

读书人网 >C#

热点推荐