我正在尝试比较2个列表,并根据第二个列表中没有的项目属性创建第一个列表的新列表。对不起,如果措辞不当,我会尝试在下面演示
我有2个清单:
public IList<OrderList> OrderList { get; set; }
public IList<ApplicationUser> UserList { get; set; }
和第三个清单:
public IList<ApplicationUser> NoOrders { get; set; }
我正在尝试用“UserList”中的对象填充第3个列表,其中FK Id字段如果不存在于“OrderList”中。创建未订购的用户列表。
我试图使用的代码是:
NoOrders = UserList.Where(y => OrderList.Any(z => z.ApplicationUserId !=
y.id.ToString())).ToList();
我还尝试直接创建类的列表:
NoOrders = await _db.ApplicationUser.Include(u => u.OrderRequest).Where(i
=> i.id != OrderRequest.ApplicationUserId.ToString()).ToListAsync();
可悲的是,我对这两种方法都没有运气。有一个更好的方法吗?
谢谢,我真的很感激
我认为你的第一次尝试正在进行中:
试试这个:
NoOrders = UserList.Where(y => OrderList.All(z => z.ApplicationUserId !=
y.id.ToString())).ToList();
要么
NoOrders = UserList.Where(y => !OrderList.Any(z => z.ApplicationUserId ==
y.id.ToString())).ToList();
您正在检查是否有任何与用户ID不匹配的订单,而您确实要确保没有订单。