我有以下类(class):
public class AuthenticateCustomerResponse
{
public EligiblePromotions EligiblePromotions { get; set; }
}
public class EligiblePromotions
{
public List<PromotionList> PromotionList { get; set; }
}
public class PromotionList
{
public string LineOfBusiness { get; set; }
public AuthenticatePromotions Promotions { get; set; }
}
public class AuthenticatePromotions
{
public List<AuthenticatePromotion> Promotion { get; set; }
}
public class AuthenticatePromotion
{
public string ServiceType { get; set; }
}
我想检索 PromotionList
,其 LineOfBusiness
等于“VID”且 ServiceType
等于“SAT”。
我尝试了以下 lambda 表达式:
PromotionList getPromotion = AuthenticateCustomerResponse.EligiblePromotions.PromotionList.Find(p => p.LineOfBusiness.ToUpper().Equals("VID")).Promotions.Promotion.Find(o=>o.ServiceType.Equals("SAT"));
但我遇到了错误:
Cannot implicitly convert type 'AuthenticatePromotion' to 'PromotionList'
我做错了什么?
最佳答案
下面的代码将为您提供 LineOfBusiness
等于“VID”的第一个对象。
var promotionList = AuthenticateCustomerResponse.EligiblePromotions.PromotionList
.Where(p => p.LineOfBusiness.ToUpper().Equals("VID")).FirstOrDefault();
如果您希望所有具有 VID 为 LineOfBusiness
而不是 .FirstOrDefault()
编辑:如果要检查 SAT,可以在 .Where()
中添加另一个子句
关于c# - 使用 lambda 表达式查找列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929447/