Почему LINQ ищет только то что указано в одном блоке if а всё остальное нет

Приветсвую! Проблема с LINQ! Не понимаю почему он ищет только минимальный элемент а максимальный искать отказывается(это проявляется в том что таблица dataGridView не изменяеться Вот код

private void LINQSearchButton_Click(object sender, EventArgs e)
{
     // Этот блок почему то не работает хотя должен был 
     if(comboBox1.Text == "Самый дорогой товар")
     {
          var query = Products.OrderBy(x=>x.Price);
          var max = query.Last();
          bindingSource.DataSource = max;
          dataGridView.DataSource = bindingSource;
     }
     // Этот блок на удивление работает  
     if(comboBox1.Text == "Самый дешёвый товар")
     {
          var query = Products.OrderBy(x=>x.Price);
          var min = query.First();
          bindingSource.DataSource = min;
          dataGridView.DataSource = bindingSource;
     }
// Всё остальное конечно же не работает 
}

Помимо этого конструктор класса товар Product имеет 4 параметра

Это название, цена, каллорийность и тип товара(бургер и такое прочее)

Класс имеет следущее описание:

public class Product 
{
     public string Name {get; set;}
     public double Price {get; set;}
     public int Kcal {get; set;}
     public string Type {get; set;}
     public Product(string name, double price, int kcal, string type)
     {
         Name = name; 
         Price = price;
         Kcal = kcal;
         Type = type;
     }
}
public List<Product> Products;

Конструктор формы имеет следующий вид:

public Form1()
{
    InitializeComponent();
    Products = new List<Product>()
    {
        new Product(//.....),
        //.......
    };
bindingSource.DataSource = Products;
dataGridView.DataSource = bindingSource;
}

Но вот только в dataGridView колонка с названием "Тип" пуста почему то(это ещё одна проблема которую я не знаю как исправить)

Спасибо большое :)


Ответы (0 шт):