C# 设置查找编辑数据源的唯一值

C# 设置查找编辑数据源的唯一值,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我试图使用下面的代码将非重复值放入查找编辑中,但变量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

我试图使用下面的代码将非重复值放入查找编辑中,但变量
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;
List liste=ObjReservation.LoadAllFamilles();
唯一变量=
列表中的from元素
按元素分组。将FA_代码分组
其中Group.Count()==1
选择Group.Key;
lookUpFamille.Properties.DataSource=unique;
试试这个:

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

我建议您使用以下方法:

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();
        }
    }
}
lookUpFamille.Properties.DataSource=list.DistinctBy(e=>e.FA_code).ToList();
//...
//通过扩展进行区分
静态类枚举器{
公共静态IEnumerable DistinctBy(此IEnumerable源,Func键选择器){
返回source.Distinct(新的EqualityComparer(keySelector));
}
类EqualityComparer:IEqualityComparer{
只读Func键选择器;
公共平等比较程序(功能键选择器){
this.keySelector=keySelector;
}
布尔IEqualityComparer.Equals(Tx,Ty){
返回等于(键选择器(x)、键选择器(y));
}
int IEqualityComparer.GetHashCode(T obj){
返回keySelector(obj).GetHashCode();
}
}
}
如果需要,添加一个
ToList()