关闭

过滤DataTable的Rows的重复值

标签: stringnulltable
1133人阅读 评论(0) 收藏 举报
分类:

 

// 方法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是最简单的方法,感觉很聪明的使用了dataview的toTable方法。

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:220011次
    • 积分:3143
    • 等级:
    • 排名:第10939名
    • 原创:79篇
    • 转载:45篇
    • 译文:0篇
    • 评论:74条
    文章分类
    最新评论
    友情链接