2 c#
说500个元素会更快.
或者检索元素的数据结构/集合是什么?
List<MyObj> myObjs = new List<MyObj>();
int i = myObjs.BinarySearch(myObjsToFind);
MyObj obj = myObjs[i];
Run Code Online (Sandbox Code Playgroud)
要么
Dictionary<MyObj, MyObj> myObjss = new Dictionary<MyObj, MyObj>();
MyObj value;
myObjss.TryGetValue(myObjsToFind, out value);
Run Code Online (Sandbox Code Playgroud)
我假设在您的真实代码中,您实际上填充了 myObjs - 并对其进行排序.
你刚试过吗?这取决于几个因素:
在二进制搜索案例中,对单个调用GetHashCode和在字典情况下对Equals进行一些调用(取决于散列冲突),需要进行大约8或9次比较.然后是两种情况下涉及的内在计算(访问数组等).
这真的是你的瓶颈吗?
我预计词典是快一点,在500点的元素,但不是很快得多.随着收集的增长,差异将明显增加.