//
方法1
string
sFormater
=
"
{0}, {1}
"
;
string
sKeys
=
null
;
string
sPrevKeys
=
null
;
//
Key项目排序
DataRow[] rows
=
table.Select(
""
,
"
Key0, Key1
"
);
foreach
(DataRow row
in
rows)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
sKeys = string.Format(sFormater, row["Key0"].ToString(), row["Key1"].ToString());
if (!sKeys.Equals(sPrevKeys))
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
tagetTable.ImportRow(row);
}
sPrevKeys = sKeys;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
方法2
string
sSelectFormater
=
"
{0}, {1}
"
;
foreach
(DataRow row
in
table.Rows)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if (tagetTable.Select(string.Format(sSelectFormater, "Key0", "Key1")).Length == 0)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
tagetTable.ImportRow(row);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
table
=
tagetTable;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
方法3
string
sFormater
=
"
{0}, {1}
"
;
DataRow row;
string
sSelectFormater
=
"
Key0 = {0}, Key1 = {1}
"
;
for
(
int
i
=
0
; i
<
table.Rows.Count; i
++
)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if (table.Select(string.Format(sSelectFormater, row["Key0"].ToString(), row["Key1"].ToString())).Length > 1)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
table.Rows.Remove(row);
i--;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
方法3少一行
...
row
=
table.Rows[i];
...
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
方法4
DataView view
=
table.DefaultView;
DataTable tagetTable
=
view.ToTable(
true
,
"
column1
"
,
"
column2
"
, ...);
方法4是最简单的方法,感觉很聪明的使用了dataview的toTable方法。