我有一个任务,需要快速通过对象的字符串属性查找对象。
对象:
class DicDomain
{
public virtual string Id{ get; set; }
public virtual string Name { get; set; }
}
我使用List[T]字典来存储我的对象,其中T目前是DicDomain。 我有5-10个这样的列表,每个列表包含大约500-20000个对象。 任务是通过名称查找对象。 我现在使用如下代码:
List<T> entities = dictionary.FindAll(s => s.Name.Equals(word, StringComparison.OrdinalIgnoreCase));
我有一些问题:
我的搜索速度是否达到最优?我认为现在已经很好了。
- 数据结构。使用链表(List)是否适合这个任务?哈希表(hashtable)、排序等呢?
- 查找方法。也许我应该使用字符串内部化(string intern)吗?
我在这些任务方面没有太多经验。你能给我一些提高性能的好建议吗? 谢谢
Dictionary
。长篇回答请看:https://dev59.com/SnNA5IYBdhLWcg3wHp6B#1089142 - Mehrdad AfshariStringComparer.OrdinalIgnoreCase
传递给Dictionary
构造函数,以控制键的比较方式。 - Mehrdad Afshari