OrderBy 在 LINQ 中使用 WHERE

胡玛阿里

我有一个offerList类型列表Offer

public class Offer
{
    public List<Feature> FeatureList { get; set; }

}

public class Feature
{
    public string FeatureName { get; set; }
    public string Value { get; set; }
}

现在我正在尝试使用属性的 max max来获取Offerand 的FeatureName“Int” Value我尝试了以下 LINQ 但它给出了错误

Offer' 不包含 'Value' 的定义,并且找不到接受类型为 'Offer' 的第一个参数的扩展方法 'Value'(您是否缺少 using 指令或程序集引用?)

List<Offer> offerList = resp;
Offer filteredOffer = offerList
    .Where(x => x.VerticalType == VerticalType.HighSpeedInternet)
    .Where(x => x.FeatureList.Any(y => y.FeatureName == "INT"))
    .OrderByDescending(y => y.Value)
    .FirstOrDefault();

我错过了什么?

蒂姆·施梅尔特

假设内部FeatureList包含具有属性的对象,Value并且您希望只有一个对象具有所需的对象,FeatureName并且您希望通过它进行排序Value

List<Offer> offerList = resp
   .Where(x => x.VerticalType == VerticalType.HighSpeedInternet)
   .Select(x => new 
   {
       Offer = x,   
       SpeedFeature = x.FeatureList
           .Where(y => y.FeatureName == "INT")
           .OrderByDescending(y => y.Value)
           .FirstOrDefault()
   })
   .Where(x => x.SpeedFeature != null)
   .OrderByDescending(x => x.SpeedFeature.Value)
   .Select(x => x.Offer)
   .ToList();

如果您想要Offer具有最高值的单曲替换ToListFirstOrDefault.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章