从清单<日志>在日志中.id存在于IList中
本文关键字:日志 short IList 存在 id | 更新日期: 2023-09-27 18:04:29
您好,我是linq新手,请原谅我的错误关键词。
IList<Log> pendingLogs = rep.GetAllPending();
IList<Short> pendingMessageInQueue = PendingCommandModel.GetPendingMessagesIds();
我有两个列表。我想从pendingLogs
中移除项目,其中项目。pendingMessageInQueue
中存在Id。如果在这种情况下更合适的话,我也可以使用IEnumerable
如果您想保留原来的列表,而不是创建一个新列表,您可以使用一个简单的连接来获取您想要删除的项:
foreach(var log in pendingMessageInQueue.Join(pendingLogs,
(id) => id,
(log) => log.Id,
(id, log) => log))
{
pendingLogs.Remove(log);
}
创建一个包含您想要保留的所有项目的新列表,您可以使用!Contains
:
pendingLogs = pendingLogs
.Where(pl => !pendingMessageInQueue.Contains(pl.id))
.ToList();