请考虑以下列表:
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.selected是true吗?
伪代码:
lCoupon = lCoupon.Where (w => lUser.name == w.name AND lUser.selected == true).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以Any在lUser列表中使用LINQ 方法,如:
var coupons = lCoupon
.Where(c => lUser.Any(u => u.selected && u.name == c.username))
.ToList();
Run Code Online (Sandbox Code Playgroud)