【问题标题】:C# linq similar range listC# linq 相似范围列表
【发布时间】:2019-06-28 21:05:38
【问题描述】:

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

我必须在列表中寻找 4 个相似的范围属性。

  • 如果价格是 400,000 美元,那么我必须找到 4 个价格为 400,000 美元的房产。

如果这 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);

如何合并列表?

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

提前致谢

【问题讨论】:

  • 需要你的类结构
  • How can I combine the list ? ConcatUnion

标签: c# .net list linq c#-4.0


【解决方案1】:

你需要使用Enumerable.Union

var result=  properties.Union(highToLow)

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

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多