我正在努力找出在我的收藏中找到物品的最有效方式。首先这里是一些更多的信息/要求:是否有一个用于查找物品的集合,不仅是按键,还有物品的属性?
- 订单并不重要。
- 必须不是使用枚举查找。
- 收集量非常大,但在填充初始值为 之后将不会进行修改。
- 必须能够通过键(字符串)查找,但也能够通过项目类型的两个属性之一来查找。
我目前使用的继承自KeyedCollection的自定义集合,它使用GetKeyForItem()从项目中提取一个字符串,用作关键字,到目前为止还不错。
问题出在我希望能够查找项目的方式。我的理解是,除了“脏”枚举之外,使用与添加相同的方法来查找项目,无论是使用自定义相等比较器还是使用键。
我错过了什么吗?是否可以接受的做法是为每个我希望能够查找的属性创建三个具有相同项目但具有不同GetKeyFoItem()实现的集合?还是有另一个我可以使用的集合?
我希望这是足够的信息来说明我的问题。我会很感激你的任何建议。
您可以使用LINQ来构建字典(唯一键)或查找(非唯一键) –