wall.post
有List<Products>
,如下所示:
List<ProductOffers>
还有另一个class Products
{
public List<ProductOffers> ProductOffers { get; set; }
}
class ProductOffers
{
public string ProductOfferId { get; set; }
public string ProductSubscription {get;set;}
}
也有List<Offers>
。
offerId
我想加入两个列表取决于class Offers
{
public string offerId {get;set;}
public string subscription{get;set;}
}
然后我必须将匹配的订阅分配给ProductSubscription。如何使用LINQ / lambda表达式实现此目的?
答案 0 :(得分:0)
你可以用这个
List<products> Prod=//assigned list of product.
List<Offers> Offer=//assigned list of offer.
List<Offers> filteredOffer=(from O in Offer
((from sa in Prod where (sa.ProductOffers.Where(d => d.ProductOfferId == O.OfferId).Select(d=>d.ProductOfferId).Count()>0) select sa).Count()>0).toList();
现在您可以使用此已过滤的Offers
列表供您进一步使用
答案 1 :(得分:0)
我在下面提供了一个解决方案。在此,我在您的SetSubscription
课程中添加了一个名为ProductOffers
的新方法。请检查这是否有帮助。
class Program
{
static void Main(string[] args)
{
var products = new List<Products>();
var offers = new List<Offers>();
products.All(t => t.ProductOffers.All(s => s.SetSubscription(offers.First(r => r.OfferId == s.ProductOfferId))));
}
}
public class Products
{
public List<ProductOffers> ProductOffers { get; set; }
}
public class ProductOffers
{
public string ProductOfferId { get; set; }
public string ProductSubscription { get; set; }
public bool SetSubscription(Offers offerDets)
{
if (offerDets != null)
{
this.ProductSubscription = offerDets.subscription;
return true;
}
return false;
}
}
public class Offers
{
public string OfferId { get; set; }
public string subscription { get; set; }
}