AminMhmdi Ответов: 1

Как установить порядок строк динамически asp.et MVC ef


у меня есть вид, который показывает все мои продукты,
я хочу иметь возможность показать конкретный продукт в верхней части списка
как я могу это сделать?

Что я уже пробовал:

сначала покажите продукт с помощью кода ef

Gerry Schmitz

Поместите "конкретный продукт" в начало списка, прежде чем "показывать" его. Удалить / вставить. Сортировать. Соединять. Выбирай сам.

AminMhmdi

нет, в настоящее время я показываю продукт с его отсортированным id =>> 1,2,3,4,5...
я хочу показать продукт 5 на втором месте и продукт с идентификатором 4 на первом месте

MadMyche

Добавьте столбец "порядок сортировки" в набор данных

1 Ответов

Рейтинг:
5

Maciej Los

Предполагая, что у вас есть

List<Product>
Вы хотите заказать эти продукты на основе другого списка. Итак, вы можете использовать что-то вроде этого:

List<int> sortOrder = new List<int>(){4, 5};
	var orderedProducts = context.products
		.ToList()
		.OrderBy(p=>sortOrder.IndexOf(p.ProductID)==-1 ? 2 : sortOrder.IndexOf(p.ProductID))
		.ToList();


Это должно вернуть список продуктов отсортированных таким образом:
4 
5 
1 
2 
3 
6 
7 
8 
9 

Удачи вам!


AminMhmdi

tnx много , можете ли вы объяснить OrderBy(p=>sortOrder.Метод indexOf(стр. Кодтовара)==-1 ? 2 : сортировщик.Метод indexOf(стр. Кодтовара))???

Maciej Los

Ответ очень прост: продукты упорядочиваются по индексу продукта в списке сортировщиков. Если идентификатор продукта не удалось найти (-1), то установите заказ на 2. Для получения более подробной информации, пожалуйста, прочтите это: ?: оператор - Справочник по C# | Microsoft Docs[^]