导入excel的列很多,只保留abcd这几个列的值,其他的列都清空
1 var row_Distinct = dt.Select().Select(d =>
2 {
3 foreach (DataColumn col in dt.Columns)
4 {
5 if (col.ColumnName != "a" &&
6 col.ColumnName != "b" &&
7 col.ColumnName != "c" &&
8 col.ColumnName != "d")
9 {
10 d.SetField(col, "");
11 }
12 }
13 return d;
14 }).Distinct(new DataRowEqualityComparer());
导入excel的列很多,如果abcd这几个列的值相同则算重复行,Distinct
1 var row_Distinct = dt.Select().Distinct(new DataRowEqualityComparer());
2
3 public class DataRowEqualityComparer : IEqualityComparer<DataRow>
4 {
5 public bool Equals(DataRow x, DataRow y)
6 {
7 if (x["a"].ToString() == y["a"].ToString() &&
8 x["b"].ToString() == y["b"].ToString() &&
9 x["c"].ToString() == y["c"].ToString() &&
10 x["d"].ToString() == y["d"].ToString())
11 {
12 return true;
13 }
14 else
15 {
16 return false;
17 }
18 }
19
20 public int GetHashCode(DataRow obj)
21 {
22 var HashCode = $"{obj["a"]}{obj["b"]}{obj["c"]}{obj["d"]}".GetHashCode();
23 return HashCode;
24 }
25
26 }