我有一个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来获取Offer
and 的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
具有最高值的单曲替换ToList
为FirstOrDefault
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句