从c#中的数据表列中查找不同的值,并将不同的值存储在变量中

时间:2016-04-14 18:43:18

标签: c#-4.0

我想从c#中的数据表列中找到不同的值,并且还希望将所有这些不同的值存储在变量中

  DataTable dtable = new DataTable();
  OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from clubbb ", con);
            da.Fill(dtable, "clubbb");
            int toto = bdtable.AsEnumerable().Distinct().Count();

1 个答案:

答案 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

希望这会有所帮助:)