C# 使用ASP.NET比较两个对象列表,并基于第一个列表中的非项属性(第二个列表中不存在)创建一个新列表
我正在尝试比较两个列表,并根据第二个列表上不存在的项目属性创建第一个列表的新列表。对不起,如果这是糟糕的措辞,我会尝试和演示下面 我有两份清单:C# 使用ASP.NET比较两个对象列表,并基于第一个列表中的非项属性(第二个列表中不存在)创建一个新列表,c#,asp.net,list,linq,compare,C#,Asp.net,List,Linq,Compare,我正在尝试比较两个列表,并根据第二个列表上不存在的项目属性创建第一个列表的新列表。对不起,如果这是糟糕的措辞,我会尝试和演示下面 我有两份清单: public IList<OrderList> OrderList { get; set; } public IList<ApplicationUser> UserList { get; set; } 我还尝试直接使用以下工具创建类列表: NoOrders = await _db.ApplicationUser.Include
public IList<OrderList> OrderList { get; set; }
public IList<ApplicationUser> UserList { get; set; }
我还尝试直接使用以下工具创建类列表:
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();
或
您正在检查是否有与用户ID不匹配的订单,但真正需要确保的是没有与用户ID不匹配的订单。如果您能够提供。确保在中包含样本输入以及这些样本输入的预期结果。可能的重复
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();