Обращаем ваше внимание, что с 1:47 по UTC, 26 августа 2016 года, я полностью изменил этот вопрос, потому что изначально он был очень запутанным. Моя вина за это. Поэтому, пожалуйста, игнорируйте все ответы/комментарии до этого времени. СпасибоLINQ - OrderByDescending
У меня есть список элементов, которые добавляются в список SearchItems с помощью SearchType ... SearchType объекта Objectype, ObjectBType и т. Д. Я хочу, чтобы OrderByDescending SearchTimes занимал элементы, имеющие тип поиска Object Object или ObjectBType. Для всех других SearchType это должен быть порядок по возрастанию.
Это мой запрос:
var orderdItems= SearchItems.OrderBy(i => i.ItemDisplay)
.OrderBy(i => i.CategoryDisplay))
это критерии, которые я хочу заказать по убыванию.
Where(x => x.SearchType == ObjectAType || x.SearchType == ObjectBType)
Это структура SearchItem
public class SearchItem
{
public SearchItem() { }
public Guid ItemId { get; set; }
public string ItemDisplay { get; set; }
public string CategoryDisplay { get; set; }
public string SearchType { get; set; }
}
И это, как они добавляются в SearchItems = List<SearchItems>();
SearchItems.AddRange(items.Select(i => new SearchItem()
{
CategoryDisplay = "Object A",
ItemDisplay = i.ObjectADisplay,
ItemId = i.ObjectAId,
SearchType = ObjectAType,
}));
SearchItems.AddRange(items.Select(i => new SearchItem()
{
CategoryDisplay = "Object B",
ItemDisplay = i.ObjectBDisplay,
ItemId = i.ObjectBId,
SearchType = ObjectBType,
}));
и так далее .... 'пункты' являются IEnumerable<ObjectA>, IEnumberable<ObjectB>
и т.д. .
Как вы собираетесь сортировать 2 из 26 предметов в одной коллекции? Это само по себе не имеет смысла, как будто я хочу, чтобы буквы C и F были отсортированы в списке буквенных символов. Что бы вы сделали с остальными? Я думаю, хотя есть что-то, что либо вы нам не рассказываете, либо не объясняете с достаточной детализацией. Например: это список элементов, в которых каждый элемент также имеет списки, и вы хотите, чтобы 2 из этих контейнеров были отсортированы? Вам необходимо предоставить структуру модели для типов, которые вы хотите отсортировать, с более подробной информацией. – Igor
Возможно, есть способ написать два запроса, а затем объединить результат перед сериализацией? – User123
Ваше объяснение проблемы не имеет технического смысла. Вы просто хотите, чтобы 2 элемента отображались сначала в списке перед другим 26? Это очень легко сделать, но вы не можете сортировать часть списка, вы сортируете все либо явно, либо неявно (это всегда произойдет) или ничего. – Igor