Еще немного об LINQ...
Еще немного об LINQ...
Дано: синглетон.
Внутри запиханы два иннер-класса - TKey & TValue.
Для обоих классов (пока интересует только ключ) переопеделены:
public static bool operator ==(Key a, Key b)
public static bool operator !=(Key a, Key b)
public override bool Equals(object o)
public override int GetHashCode()
Сделано так потому как состав классов пока не устоялся и проще поддерживать все в одном месте, чем ползать по коду.
Внутри синглетона есть словарик Dictionary_TKey_TValue. (скобки)
Помещение и доступ элементам - работают. Повторно собираемые ключи дают доступ к тем же (нужным) элементам, как планировалось.
С этой стороны никаких проблем не вижу.
Теперь определяется один статический ключ:
static TKey fristKey = new TKey("p1", "p2", "p3", "p4");
Все элементики по местам, индексирование данным ключем словарика даст соответствующее TValue.
Т.е. - проблем с поиском информации в словаре нет.
Теперь приспичило мне написать простой подсчет количества вхождений ключ-значение pар с данным ключем в словарик.
Для тех, кто сразу в состоянии сказать, что там ровно один уникальный ключ - подтвержу - один.
Однако:
int firstCount = dic.Select(x => x.Key == firstKey).Count();
говорит что их там 5. Там, в словаре, всего 5 элементов.
Ну и где Я сейчас чего-то не понимаю?