【发布时间】:2018-01-13 02:40:42
【问题描述】:
我正在尝试找出在我的收藏中查找项目的最有效方法。首先这里有一些更多的信息/要求:
- 顺序并不重要。
- 必须不使用枚举查找。
- 集合将非常大,但在初始设置后不会被修改 已填充。
- 必须能够通过键(字符串)进行查找,但也能够通过项目类型的两个属性之一进行查找。
我目前正在使用继承自 KeyedCollection 的自定义集合,它使用 GetKeyForItem() 从项目中提取字符串,用作键,到目前为止还不错。
问题在于我希望能够查找项目的方式。据我了解,除了“脏”枚举之外,查找项目时使用与添加时相同的方法,无论是使用自定义相等比较器还是键。
我错过了什么吗?为我希望能够查找的每个属性创建三个具有相同项目但具有不同 GetKeyFoItem() 实现的集合是否可以接受?或者还有其他我可以使用的集合吗?
我希望这些信息足以说明我的问题。我会很感激你的任何建议。
【问题讨论】:
-
您可以使用 Linq 构建字典(唯一键)或查找(非唯一键)
标签: c# collections