LINQ 逻辑条件无法评估的地方

问题描述 投票:0回答:1
.Where(product => productPrices.IsNullOrEmpty() || 
                          (
                               product.PProduseCuDimensiuni!.Count > 0 || product.PProduseCuDimensiuni != null
                                  ? product.PProduseCuDimensiuni.Any(dimension =>
                                      dimension.PretRedus > 0
                                          ? dimension.PretRedus >= Convert.ToDecimal(productPrices![0]) && dimension.PretRedus <= Convert.ToDecimal(productPrices[1])
                                          : dimension.Pret >= Convert.ToDecimal(productPrices![0]) && dimension.Pret <= Convert.ToDecimal(productPrices[1])
                                  )
                                  : product.PretDeBazaRedus > 0 
                                            ? product.PretDeBazaRedus >= Convert.ToDecimal(productPrices![0]) && product.PretDeBazaRedus <= Convert.ToDecimal(productPrices[1])
                                            : product.PretDeBaza >= Convert.ToDecimal(productPrices![0]) && product.PretDeBaza <= Convert.ToDecimal(productPrices[1])
                                  
                          )
        )

我已经得到了查询的这一部分,它检查价格是否落入较低价格和较高价格的范围内(

productPrices
)。
productPrices
的格式为
[lowerBound,upperBound]
。我对每个尺寸有不同的价格。如果产品有
Pret
PretRedus
0
不同,则应选择折扣后的产品。如果产品没有尺寸,则应检查
PretDeBaza
PretDeBazaRedus
。如果
PretDeBazaRedus
为 0,则应采用
PretDeBaza
,否则如果 > 0,则采用
PretDeBazaRedus
。对于产品具有尺寸的部分,一切正常。如果产品没有尺寸,则条件无法检查底价。为什么?

c# linq
1个回答
0
投票

好吧,我认为在顶层你应该有一个

&&
而不是
||

此外,在集合论中,任何陈述对于空集的所有元素都为真,因为不存在该陈述为假的元素。

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