Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 从c#中的datatable列中查找不同的值,并将不同的值存储在变量中_C# 4.0 - Fatal编程技术网

C# 4.0 从c#中的datatable列中查找不同的值,并将不同的值存储在变量中

C# 4.0 从c#中的datatable列中查找不同的值,并将不同的值存储在变量中,c#-4.0,C# 4.0,我想从c#中的datatable列中找到不同的值,还想将所有这些不同的值存储在变量中 DataTable dtable = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from clubbb ", con); da.Fill(dtable, "clubbb"); int toto = bdtable.AsEnumerable().Distinct

我想从c#中的datatable列中找到不同的值,还想将所有这些不同的值存储在变量中

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

您需要实现接口
IEqualityComparer
方法,以提供
Distinct
方法用于了解两行是否重复的方法。这可以通过以下类实现:

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
    }
}
我有类似的问题,在我的例子中,我需要知道特定列的不同值,因此我将此列的名称传递给我实现的自定义比较器,以便
GetHashCode
将为重复值返回相同的哈希代码

您可以在此处阅读更多内容:


希望这有帮助:)

尝试使用查询:从clubbb中选择不同的列
int toto = bdtable.AsEnumerable().Distinct(new CustomComparer()).Count();