从清单<日志>在日志中.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

从清单<日志>在日志中.id存在于IList<short>中

如果您想保留原来的列表,而不是创建一个新列表,您可以使用一个简单的连接来获取您想要删除的项:

 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();