这在某种程度上与这个(Getting all unique Items in a C# list)问题有关。
上面的问题是在谈论一个简单的值数组。我有一个从第三方 Web 服务返回的对象:
public class X
{
public Enum y {get; set;}
}
我有一个这些对象的列表,List<x> data;
总共大约 100 条记录,但可变。现在我想要属性列表中的所有可能值,y
并且我想绑定它做一个CheckBoxList.DataSource
(以防有所不同)。
最有效的方法是如何做到这一点?
我可以想到两种算法:
var data = HashSet<Enum> hashSet = new HashSet<Enum>(xs.Select(s => s.y));
chkBoxList.DataSource = data;
或者
var data = xs.Select(s => s.y).Distinct();
chkBoxList.DataSource = data;
我的直觉是 HashSet 但我不是 100% 确定。
如果有人有任何想法,可以接受更好的想法?