繁体   English   中英

C#LINQ相似范围列表

[英]C# linq similar range list

我正在创建类似的属性列表。

我必须在列表中查找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);

如何合并列表?

有没有人做过与我要达到的目标相似的事情。 任何帮助或建议,将不胜感激。

提前致谢

您需要使用Enumerable.Union

var result=  properties.Union(highToLow)

如果列表是对象列表,则应实现一个可以在Union方法中使用的相等比较器。 Enumerable.Union

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM