![](/img/trans.png)
[英]C# Linq How do I filter a list with the data of an object and store the result in another list?
[英]Filter a list<object> by another list<object2> 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>();
这怎么可能(与LINQ
)来过滤lCoupon
与lUser
使仍然存在的唯一价值是那些lCoupon.username
出现在现场lUser.name
,与lUser.selected
是true
?
伪代码:
lCoupon = lCoupon.Where (w => lUser.name == w.name AND lUser.selected == true).ToList();
您可以在lUser
列表中使用LINQ Any
方法,如下所示:
var coupons = lCoupon
.Where(c => lUser.Any(u => u.selected && u.name == c.username))
.ToList();
您也可以通过加入执行此操作:
var coupons = from coupon in lCoupons
join user in lUser on coupon.username equals user.name
where user.selected
select coupon;
这样,您可以从两种对象类型中轻松选择值,例如:
var selectedObjects = from coupon in lCoupons
join user in lUser on coupon.username equals user.name
where user.selected
select new { CouponCode = coupon.code, UserId = user.Id} ;
如果您愿意,可以使用ToList()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.