我应该设计一个解决方案以获得最佳性能来搜索该集合中的项目。
问题是:我有一个类型:
class MyType {
public int Id { get; set; }
public int Sequence{ get; set; }
public string Name { get; set; }
public Enum MyEnum { get; set; }
//.....
}
我有一个包含对象的集合:Collection<MyType>
.
我想Collection<MyType>
按特定成员在此搜索,例如按Id。
我已经分析并决定我会使用 aDictionary<TKey, TValue>
或 a HashSet<T>
。现在,我有疑问。当尝试通过MyType的特定成员查找元素时,哪个集合会在访问时间方面给我最好的结果(关于时间) :
- 使用
Dictionary<int, MyType>
其中键是 MyType 的Id成员,而 MyType 是整个对象, - 使用 a
HashSet<MyType>
并通过 item.Id 在其中查找 ...
是否可以设置 HashSet 哪个项目成员应该被视为 SQL 中的索引?