Dot-Net
是否有像集合這樣的字典可以使用其值的屬性作為鍵?
而不是使用
Dictionary<TKey,TValue>我想要某種類型的集合類,它可以使用值的屬性作為鍵,有這樣的東西嗎?
是的,有 -
System.Collections.ObjectModel.KeyedCollection<TKey, TValue>。那是抽象的,就我所見,框架中沒有具體的派生類,但您需要實現的只是
GetKeyForItem我所見。例如,您可以使用委託執行此操作:public class DelegatingKeyedCollection<TKey, TItem> : System.Collections.ObjectModel.KeyedCollection<TKey, TItem> { private readonly Func<TItem, TKey> keySelector; public DelegatingKeyedCollection(Func<TItem, TKey> keySelector) { this.keySelector = keySelector; } protected override TKey GetKeyForItem(TItem item) { return keySelector(item); } }