C#列出最小和最大范围

时间:2019-02-06 06:46:58

标签: c# list linq c#-4.0 range

我有一个带有价格的属性对象列表。我希望清单在一定价格之内。

例如

最高价格:800000 最低价格:200000

results = props.results.Where(x => x.PropertyType.ToLower() != propertytype.ToLower()   && (x.Price >= minPrice && x.Price <= maxPrice)).OrderByDescending(x => Math.Abs(x.Price - price));

代码运行正常。有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

您的代码很好。

如果需要,可以为int(或使用的任何数据类型)创建扩展方法,如下所示:

public static class Extensions
{
    public static bool IsBetween(this int value, int min, int max)
    {
        return value >= min && value <= max;
    }
}

并命名为

integers.Where(x => x.IsBetween(3, 5))

答案 1 :(得分:1)

您可以尝试以更复杂的方式编写查询,

results = props.results.Where(x => x.PropertyType.ToLower() != propertytype.ToLower())
                       .Where(y => y.Price >= minPrice && y.Price <= maxPrice)
                       .OrderByDescending(z => Math.Abs(z.Price - price));

答案 2 :(得分:0)

您的范围条件看起来不对,应该是x.Price >= minPrice && x.Price <= maxPrice,如果您要查找类似SQL between这样的语法,则不存在,