// 方法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++)

...{
if (table.Select(string.Format(sSelectFormater, row["Key0"].ToString(), row["Key1"].ToString())).Length > 1)

...{
table.Rows.Remove(row);
i--;
}
}

// 方法3少一行
...
row = table.Rows[i];
...

// 方法4
DataView view = table.DefaultView;
DataTable tagetTable= view.ToTable(true, "column1", "column2", ...);























































方法4是最简单的方法