gpt4 book ai didi

c# - 列表上的 IndexOf 太慢。更快的解决方案?

转载 作者:可可西里 更新时间:2023-11-01 08:52:31 25 4
gpt4 key购买 nike

我有一个通用列表,它必须是一个保留顺序,所以我可以检索列表中对象的索引。问题是 IndexOf 太慢了。如果我将 IndexOf 注释掉,代码将尽可能快地运行。有没有更好的方法,例如用于 c# 的保留有序哈希列表?

谢谢,内特

  • 编辑 -添加/插入项目的顺序是它需要的顺序。无需对它们进行排序。此列表也有可能经常更新、添加、删除、插入。基本上我需要将对象转换为索引,因为它们在网格控件中表示,因此我可以根据索引在网格控件上执行操作。

最佳答案

如果它没有排序,但顺序需要保留,那么你可以有一个单独的Dictionary<YourClass, int>其中将包含每个元素的索引。

如果您想要一个排序列表,请查看以前的帖子 - 您可以使用 SortedList<Tkey, TValue>在 .Net 3.5 中,或者在较旧的 .Net 版本中对其进行排序并使用 BinarySearch。

[编辑] 你可以在网上找到类似的例子,例如:OrderedList .这个在内部使用 ArrayList 和 HashTable,但您可以轻松地使其通用。

[Edit2] 哎呀..我给你的​​例子没有按照我一开始描述的方式实现 IndexOf...但你明白了 - 一个列表应该排序,另一个用于快速查找。

关于c# - 列表上的 IndexOf 太慢。更快的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com