2013-04-15 165 views
0

我想具體field(ID)在數據表不整列該怎麼做來獲得不同:如何獲得鮮明的特定列

我的表結構:

ID -- name -- desc 

代碼:

DataTable dt = table.AsEnumerable() 
    .Distinct(DataRowComparer.Default)//I want to distinct by id instead 
    .CopyToDataTable(); 
+0

因此所得到的數據表將只ID? – StampedeXV

+0

不,我想要所有數據 –

+0

'id'應該已經不同了,這就是主鍵的工作方式...... –

回答

0

如果你的意思是你想在這裏不同值的列表是一個例子:

List<Int32> fieldList = (from r in dt.AsEnumerable()SELECT Int32.Parse(r["ID"].ToString())).Distinct().ToList(); 
0

我不知道這是否是你想要什麼,但你可以使用IEqualityComparer會忽略與同一ID

DataTable dt = table.AsEnumerable().Distinct(new MyComparer<YourClass>()) 
       .CopyToDataTable() 

的所有生產線:

class MyComparer<T> : IEqualityComparer<T> where T : YourClass 
    { 
     public bool Equals(T x, T y) 
     { 
      return x.Id.Equals(y.Id); 
     } 

     public int GetHashCode(T obj) 
     { 
      return obj.Id.GetHashCode(); 
     } 
    }