У меня есть XML-файл с 3 частями данных на элемент: productName, productCode и productPrice. Количество элементов в файле XML составляет около 7000.
Пользователь может искать товар по названию, набрав «красную рубашку», например, в текстовом поле.
Мой код выполняет следующие задачи:
токенизируйте текст поиска и соберите productName, который содержит ВСЕ слова поиска.
упорядочить выбор по коду продукта
выбрать для отображения только productName и productPrice (не productCode, который используется только для заказа)
var products = from d in xElem.Descendants(fileName)
where textBox1.Text.ToLower().Split(' ').All(t => d.Element(productName).Value.ToLower().Contains(t))
orderby d.Element(productCode).Value ascending
select new
{
Price = (double.Parse(d.Element(productPrice).Value)).ToString(numberFormat),
Name = d.Element(Name).Value
};
Где в этом коде узкие места? И как их убрать?
Я делаю этот выбор Linq каждый раз, когда в текстовое поле вводится нажатие клавиши , что означает обновление результата в реальном времени (по сравнению с ожиданием нажатия клавиши Enter).
Спасибо.