Как создать список анонимного типа с GroupBy?
В скобках - поле по которому группируете
var list = Boxes.GroupBy(b=> b.ProductName)
Как то такvar list = Boxes.GroupBy(b=> b.ProductName).Select(m=> {ProductName = m.Key, ItemCount = m.Value.Count})
Где key - это ваш ProductName, а Value -  список ваших  Box