Перейду сразу к сути дела! Есть dataGridView, в нем изначально отображены продукты(в моем случае это еда из макдональдса по типу наггетсов, бургеров и прочего). В этом отображении показана информация о продуктах(название, цена, каллорийность).
Помимо dataGridView на форме так же присутсвуют 3 кнопки и 1 comboBox откуда пользователь может выбрать критерий поиска товаров по таблице dataGridView
Среди критериев у меня имеются такие: -Самый дёшевый товар в таблице который есть
- Самый дорогой товар в таблице который есть
То есть после выбора одного из этих двоих критериев поиска в таблице должен отобразится только 1 элемент(или с минимальной или с максимальной ценой).
У меня же в таблицу выводиться просто пустая строка почему то. Данные продукты объеденены в один класс именуемый
Product, название, цена, калорийность указываеться в конструкторе.
Далее есть список куда эти продукты добавляються а потом отображаються в гриде
Вот код:
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Data;
using System.ComponentModel;
using System.Drawing;
using System.Threading;
namespace Mc
{
public partial class Form1: Form
{
public class Product
{
public string Goods {get; set;}
public double Price {get; set;}
public int Kcal {get; set;}
public Product(string name, double price, int kcal)
{
Goods = name;
Price = price;
Kcal = kcal;
}
}
public List<Product> Products;
public Form1()
{
InitializeComponent();
Products = new List<Product>()
{
new Product("Big Mac", 200.0, 1500),
new Product("McChicken Classic", 150.0, 1200),
new Product("Coca Cola", 100.0, 1000),
new Product("Oreo McFlurry", 90.0, 2200),
new Product("Apple Pie", 120.0, 2500)
};
bindingSource.DataSource = Products;
dataGridView.DataSource = bindingSource;
}
private void LINQSearch_Click(object sender, EventArgs e)
{
if(comboBox1.SelectedItem.ToString() == "Самый дёшевый товар")
{
var query = Products.Select(x=>x.Price).Min();
bindingSource.DataSource = query;
dataGridView.DataSource = bindingSource;
}
if(comboBox1.SelectedItem.ToString() == "Самый дорогой товар")
{
var query = Products.Select(x=>x.Price).Max();
bindingSource.DataSource = query;
dataGridView.DataSource = bindingSource;
}
}
}
}
Пробовал переменную query перевести в список методом ToList() но оно выдало ошибку
Помогите пожалуйста :) Заранее очень благодарю за помощь! Самый полезный ответ отмечу галочкой
Edit: Пробовал также использовать запрос: (from pr in Products select pr.Price).Min() но оно тоже не помогло