DataTable根据字段去重

匿名 (未验证) 提交于 2019-12-02 22:10:10

DataTable根据字段去重

public static DataTable DistinctSomeColumn(DataTable sourceTable, params string[] fieldName)         {             DataTable dt2 = sourceTable.Clone();             DataView v1 = dt2.DefaultView;             StringBuilder filter = new StringBuilder();             foreach (DataRow row in sourceTable.Rows)             {                 for (int i = 0; i < fieldName.Length; i++)                 {                     filter.AppendFormat("{0}='{1}'", fieldName[i], row[fieldName[i]].ToString().TrimEnd());                     if (i < fieldName.Length - 1)                     {                         filter.Append(" and ");                     }                 }                  v1.RowFilter = filter.ToString();                  if (v1.Count > 0)                 {                     filter = new StringBuilder();                     continue;                 }                 dt2.Rows.Add(row.ItemArray);                 filter = new StringBuilder();             }             return dt2;         } 

  经过测试,代码可以实现功能,但是其中有一点弄不明白,DataView v1 = dt2.DefaultView;这里对dt2做加入行操作,同时也能影响v1,但是经过我测试如果直接把新的一个datatable赋给dt2,则不能影响v1,还有dataview里的table属性又是什么,找了好多资料都没弄清楚,有大神解释一下吗。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!