我有通过其字符串属性快速查找对象的任务。 对象:
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));
我有一些问题:
我的搜索速度是否达到最佳。我现在想。
我对这些任务没什么好处。你可以给我很好的建议,以提高性能。 感谢
答案 0 :(得分:5)
如果您经常执行此操作,您可以构建Dictionary<string, List<DicDomain>>
(或Dictionary<string, DicDomain>
如果Name
是唯一的)来构建反向映射(从名称到一堆{ {1}}对象)并使该字典保持最新状态。
在此之后,任务将是一个简单的哈希表查找:
DicDomain