русский
Germany.ruForen → Архив Досок→ Programmierung

Еще немного об LINQ...

02.07.19 18:07
Еще немного об LINQ...
 
Murr_0002 знакомое лицо
Murr_0002

Еще немного об 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 элементов.


Ну и где Я сейчас чего-то не понимаю?

 

Sprung zu