我编写代码,但我需要它更快地工作,而不是O(n)。
public T GetElementAt(int index)
{
return hashSet.ElementAt(index);
}
和另一个
public T GetElementAt(int index)
{
var enumerator = hashset.GetEnumerator();
for (int i = 0; i < index; i++)
{
enumerator.MoveNext();
}
return enumerator.Current;
}
请帮助我,我不知道该怎么做。
P.S。抱歉我的英语不好。
答案 0 :(得分:2)
看起来您可能正在使用HashSet<T>
用于错误的目的。
套装专为:
而设计 HashSet<T>
执行上述操作,并且非常快。但这就是它的全部功能。
集合没有排序,因此尝试获取 nth 值并没有任何意义或用途。
对于你正在做的事情(通过编号项目偏移进行O(1)访问),List<T>
将完美地完成。
此答案here提供了HashSet<T>
的详细说明。