1. using System.Linq а нужно IComparable 2. номер задания из-за контрольной 3. Product.GetProductFromShop(products, "shop1") -> ответственнен ли тип Product за поиск в своих? Возможно и нет, я бы сделал дополнительный сервис.