我正在努力找出在我的收藏中找到物品的最有效方式。首先這裏是一些更多的信息/要求:是否有一個用於查找物品的集合,不僅是按鍵,還有物品的屬性?
- 訂單並不重要。
- 必須不是使用枚舉查找。
- 收集量非常大,但在填充初始值爲 之後將不會進行修改。
- 必須能夠通過鍵(字符串)查找,但也能夠通過項目類型的兩個屬性之一來查找。
我目前使用的繼承自KeyedCollection的自定義集合,它使用GetKeyForItem()從項目中提取一個字符串,用作關鍵字,到目前爲止還不錯。
問題出在我希望能夠查找項目的方式。我的理解是,除了「髒」枚舉之外,使用與添加相同的方法來查找項目,無論是使用自定義相等比較器還是使用鍵。
我錯過了什麼嗎?是否可以接受的做法是爲每個我希望能夠查找的屬性創建三個具有相同項目但具有不同GetKeyFoItem()實現的集合?還是有另一個我可以使用的集合?
我希望這是足夠的信息來說明我的問題。我會很感激你的任何建議。
您可以使用LINQ來構建字典(唯一鍵)或查找(非唯一鍵) –