Хотя у вас уже есть решение, просто хочу указать, как вы могли бы его решить, потому что вы действительно были близки к решению ...
Dictionary<string, int> boltFamilyList = selectedBolts
.GroupBy(bolt => new { bolt.Length, bolt.Diameter })
.ToDictionary(bolt => bolt.Key, bolt => bolt.Count());
в строке списка вы можете создать ключ:
.ToDictionary(bolt => $"{bolt.Key.Length}_{bolt.Key.Diameter}", bolt => bolt.Count());
Если вы посмотрите на сигнатуру метода Enumerable.ToDictionary
, вы увидите, что первый аргумент - Func<TSource,TKey> keySelector
, в вашем случае TSource
- это анонимный тип, а TKey
- этострока.Все, что вам нужно сделать, это определить отображение между TSource
и TKey
, и это именно то, что делает функция bolt => $"{bolt.Key.Length}_{bolt.Key.Diameter}"
.