// 方法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;
// 方法3
string sFormater = "{0}, {1}";
DataRow row;
string sSelectFormater = "Key0 = {0}, Key1 = {1}";
for (int i = 0; i < table.Rows.Count; i++)
{
row = table.Rows[i];
if (table.Select(string.Format(sSelectFormater, row["Key0"].ToString(), row["Key1"].ToString())).Length > 1)
{
table.Rows.Remove(row);
i--;
}
}
// 方法4
DataView view = table.DefaultView;
DataTable tagetTable= view.ToTable(true, "column1", "column2", ...);