【发布时间】:2022-01-07 08:46:36
【问题描述】:
GalleryDetail.Id 进入第一个foreach 循环时为148,GalleryDetail.Id 进入第二个foreach 循环时为148。但它不会再次进入第一个foreach 循环。它从第二个继续。如何让它重新进入这里的第一个循环?
注意:我没有来自 GalleryDetail.Id 请求的直接访问权限。
var detailList = await _repo.GalleryDetail.GetAllAsync();
foreach (var item in mapped.GalleryDetails)
{
foreach (var item2 in detailList)
{
if (item.Id != item2.Id)
{
var mapped3 = _mapper.Map<GalleryDetails>(item2);
await _repo.GalleryDetail.DeleteAsync(mapped3);
}
}
}
【问题讨论】:
-
你能澄清一下
mapped.GalleryDetails在这种情况下是什么吗? -
现在你有了一个嵌套循环。您想并行使用它们(每个集合中的一个元素)吗?
-
mapped.GalleryDetails => 这是我发送的请求中的 GalleryDetail 模型列表。
-
同意@Korfu 进行更多说明。还有DetilList有多大?什么版本的EF?也许用英语带我们完成您想要实现的目标。尽管我很喜欢 LINQ,但到目前为止,我的直觉是我会像你所做的那样坚持使用 foreach,但要真正澄清你在做什么。这将使您将来(或其他开发人员)更容易回来
-
有了我认可的答案,我的大部分问题都解决了。由于我只使用Ef Core,所以我写了一个新的foreach方法以列表的形式删除。