通过字符串属性快速查找对象

时间:2010-05-27 07:55:15

标签: c# .net optimization

我有通过其字符串属性快速查找对象的任务。 对象:

  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));

我有一些问题:

我的搜索速度是否达到最佳。我现在想。

  1. 数据结构。它列出了这项任务的好处。哈希表怎么样,排序......
  2. 方法查找。可能我应该使用字符串实习生??
  3. 我对这些任务没什么好处。你可以给我很好的建议,以提高性能。 感谢

1 个答案:

答案 0 :(得分:5)

如果您经常执行此操作,您可以构建Dictionary<string, List<DicDomain>>(或Dictionary<string, DicDomain>如果Name是唯一的)来构建反向映射(从名称到一堆{ {1}}对象)并使该字典保持最新状态。

在此之后,任务将是一个简单的哈希表查找:

DicDomain