通过另一个列表<object2> C#LINQ过滤列表<object>

ast*_*ter 3 c# linq

请考虑以下列表:

class user {
   public int id {get; set;}
   public string name {get; set;}
   public bool selected {get; set;} 
}

class coupon {
   public string username {get; set;}
   public string coupontype {get; set;}
   public string code {get; set;}
}

List<user> lUser = new List<user>();
List<coupon> lCoupon = new List<coupon>();
Run Code Online (Sandbox Code Playgroud)

如何LINQ过滤lCoupon,lUser以便剩下的唯一值是那些有lCoupon.username字段存在的值lUser.name,lUser.selectedtrue吗?

伪代码:

lCoupon = lCoupon.Where (w => lUser.name == w.name AND lUser.selected == true).ToList();
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

您可以AnylUser列表中使用LINQ 方法,如:

var coupons = lCoupon
    .Where(c => lUser.Any(u => u.selected && u.name == c.username))
    .ToList();
Run Code Online (Sandbox Code Playgroud)