C # linq аналогичный список диапазонов - PullRequest
0 голосов
/ 05 февраля 2019

Я создаю аналогичный список свойств.

Мне нужно найти 4 похожих свойства диапазона в списке.

  • Если цена составляет 400 000 долларов, я должен найти 4 свойства по цене 400 000 долларов.

Если 4 свойства не могут быть найдены, то

  • Сортируйте список по убыванию и найдите оставшиеся свойства из списка.

Если нет одинаковых ценовых свойств, тогда

  • Сортировать список поот высокого к низкому и получить два свойства из списка

  • И снова отсортировать список по убыванию и получить 2 свойства из списка

Для того, чтобы найти те же цены свойства

var properties = props.results.Where(x => x.Price== price).ToList().Take(4);

от верхнего к низкому списку

var highToLow = props.results.OrderByDescending(x => x.Price).ToList().Take(4);

от низкого к высокому списку

var lowToHigh = props.results.OrderBy(x => x.Price).ToList().Take(4);

Проблема

Когда по одной и той же цене найдено менее 4 объектов

var properties = props.results.Where(x => x.Price== price).ToList().Take(4);

Теперь я сортирую список по максимуму и нахожу остальные свойства из этого списка по максимуму.

var highToLow = props.results.OrderByDescending(x => x.Price).ToList().Take(4);

Как мне объединить список?

Кто-нибудь сделал что-то похожее на то, что я тржелая достичь.Буду признателен за любую помощь или предложение.

Заранее спасибо

1 Ответ

0 голосов
/ 05 февраля 2019

Вам необходимо использовать Enumerable.Union :

var result=  properties.Union(highToLow)

Если ваш список представляет собой список объектов, вам следует реализовать средство сравнения на равенство, которое можно использовать в методе Union. Enumerable.Union

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...