C# linq 相似范围列表

C# linq similar range list

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

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

从低到高的列表

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