我想从c#中的数据表列中找到不同的值,并且还希望将所有这些不同的值存储在变量中
DataTable dtable = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from clubbb ", con);
da.Fill(dtable, "clubbb");
int toto = bdtable.AsEnumerable().Distinct().Count();
答案 0 :(得分:0)
您需要实现接口IEqualityComparer<DataRow>
方法,以提供Distinct
方法用于了解2行是否重复的方式。这可以通过以下类来实现:
public class CustomComparer : IEqualityComparer<DataRow>
{
public bool Equals(DataRow x, DataRow y)
{
// your custom equality logic here
}
public int GetHashCode(DataRow obj)
{
// return hash code depending on your distinct criteria
}
}
然后更改您的通话:
int toto = bdtable.AsEnumerable().Distinct(new CustomComparer()).Count();
我有类似的问题,在我的情况下我需要知道特定列的不同值,所以我将此列的名称传递给我实现的自定义比较器,以便GetHashCode
将返回相同的哈希码重复值。
您可以在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/ms132151(v=vs.110).aspx
希望这会有所帮助:)