chcialbym slownik z multi-wartosciami klucza, najlepiej z mozliwoscia okreslenia ilosci skladowych klucza przy tworzeniu (oraz typow poszczegolnych skladowych klucza)
czyli np. MyDictionary<int, string, DateTime, MyValueType> myD
indexer np. myD[1,"foo",new DateTime(2010,5,15)] zwraca obiekt MyValueType
rozwiazania:
- zaimplementowac wlasny slownik np. Dictionary<K1,K2,V>, Dictionary<K1,K2,K3,V>, ...
- uzycie standardowego slownika, a jako klucza struktury Key<K1,K2>, Key<K1,K2,K3>, ...
tylko to nie rozwiazuje mojego problemu ilosci skladowych klucza (2,3,4,...), bo musze zaimplementowac kilka klas, zeby miec typowanie poszczegolnych skladowych klucza oraz obslugiwac ich dynamiczna ilosc
raczej nie chce umozliwiac dobierania sie po czesci klucza, czyli np. myD[1,"foo"], przynajmniej nie przwiduje takiego indexera, moze jakies dedykowane wyszukiwanie (lub zostaje linq)
oczywiscie moge poswiecic chwile i to zrobic, zastanawiam sie jeszcze nad sposobem implementacji pod spodem
- kaskadowe slowniki Dictionary<K1, Dictionary<K2, Dictionary<K3, TValue>>>
- Dictionary<Key<K1,K2,K3>, TValue>
- drzewa AVL, z kluczem Key<K1,K2,K3>
jakis inny ciekawy pomysl na implementacje?