我有一个包含这样数据的集合。
--------------------------------------------
| key | customer Name | code | isActive |
--------------------------------------------
| 30002 | XYZ | 234 | 1 |
--------------------------------------------
| 30002 | XYZ | 234 | 1 |
--------------------------------------------
| 30002 | XYZ | 234 | 1 |
--------------------------------------------
| 30034 | ERR | 344 | 1 |
--------------------------------------------
| 30031 | LDD | 343 | 1 |
--------------------------------------------
如何使用linq选择不同的数据?
答案 0 :(得分:6)
Distinct
linq方法: - )
答案 1 :(得分:5)
您可以像这样创建自己的比较器:
public class MyComparer : IEqualityComparer<DataRow>
{
public bool Equals(DataRow x, DataRow y) {
return x["col1"] == y.["col1"] && x["col2"] == y.["col2"];
}
public int GetHashCode(DataRow obj) {
return obj["col1"].GetHashCode() ^ obj["col2"].GetHashCode();
}
}
然后使用:
var distinctRows = (from dr in table.AsEnumerable()
select dr).Distinct(new MyComparer());
我认为可以优化代码,但总体思路如下:)