2013-06-12 99 views
0

我試圖把非重複的值放在使用下面的代碼進行查找編輯,但變量unique總是null,我不知道問題出在哪裏。設置唯一的值來查找編輯數據源

請幫忙嗎?

List<VueItemItemUnit> liste = ObjReservation.LoadAllFamilles(); 
var unique = 
     from element in liste 
     group element by element.FA_CODE into Group 
     where Group.Count() == 1 
     select Group.Key; 

lookUpFamille.Properties.DataSource = unique; 

回答

0

試試這個:

var unique = liste.Distinct(element => element.FA_CODE).Select(element => element.FA_CODE); 
+0

添加'ToList()'如果nedded。 – Fares

0

我建議你用下面的辦法:

lookUpFamille.Properties.DataSource = list.DistinctBy(e => e.FA_CODE).ToList(); 
//... 
// DistinctBy<T,TKey> extension 
static class EnumerableHelper { 
    public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> source, Func<T, TKey> keySelector) { 
     return source.Distinct(new EqualityComparer<T, TKey>(keySelector)); 
    } 
    class EqualityComparer<T, TKey> : IEqualityComparer<T> { 
     readonly Func<T, TKey> keySelector; 
     public EqualityComparer(Func<T, TKey> keySelector) { 
      this.keySelector = keySelector; 
     } 
     bool IEqualityComparer<T>.Equals(T x, T y) { 
      return Equals(keySelector(x), keySelector(y)); 
     } 
     int IEqualityComparer<T>.GetHashCode(T obj) { 
      return keySelector(obj).GetHashCode(); 
     } 
    } 
}