[英]C# linq similar range list
我正在创建类似的属性列表。
我必须在列表中查找4个相似的范围属性。
如果找不到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.