使用 lambda 表达式查找计数

zar*_*han 6 c# linq lambda

我有以下课程:

public class Promotion
{
    public Offers Offers { get; set; }
}
public class Offers
{
   public List<PromotionOffer> Offer { get; set; }
}

public class PromotionOffer
{
    public string CategoryName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个目标Promotion

Promotion applicablePromotion = promotion;
Run Code Online (Sandbox Code Playgroud)

applicablePromotion包含列表 Offer并且每个报价都有CategoryName。我想找到计数在哪里CategoryName == Package

就像是:

int count = applicablePromotion.Offers.Offer.Find(c => c.CategoryName == "Package").Count;
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Boj*_*n B 5

你可以使用:

var count = applicablePromotion.Offers.Offer.Count(o => o.CategoryName == "Package"); 
Run Code Online (Sandbox Code Playgroud)

在 LINQ 中,Count可以接受 Lambda 表达式,并且您不必使用Where

在这里查看:

var count = applicablePromotion.Offers.Offer.Count(o => o.CategoryName == "Package"); 
Run Code Online (Sandbox Code Playgroud)