C#列表中的最小值和最大值范围

问题描述 投票:-2回答:3

我有有价财产的对象的列表。我想该列表,以一定的价格范围内。

例如

最高价: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));

该代码是工作的罚款。有没有更好的办法做到这一点?

c# list linq c#-4.0 range
3个回答
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
投票

你可以试着查询写入到更复杂的方式一样,

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));

0
投票

你的范围条件看起来相当错误应该是x.Price >= minPrice && x.Price <= maxPrice,如果你正在寻找像SQL between然后语法不行,有没有这样的contruct本

© www.soinside.com 2019 - 2024. All rights reserved.