顯示的代碼片段會將第一個串列中的每個元素與第二個串列中的一個元素進行比較。但是當內部 foreach 完成時,上部 foreach 重新進入并且影像在兩個串列中拋出相同的 guid。我怎樣才能讓它不這樣做?
var listDetail = await _repo.GalleryDetail.GetAllAsync(a => a.GalleryId == request.Id);
request.GalleryDetails.ToList().ForEach(a =>
{
if (a.File == null)
{
foreach (var item in listDetail)
{
a.Image = item.Image;
}
}
else
{
foreach (var item in listDetail)
{
if (item.Image != null && item.Image != "True")
item.Image = a.File.DeleteFtp(url: item.Image.Substring(7),
cdn).ToString();
}
a.Image = a.File.UploadFtp("GalleryDetail", cdn);
}
});

uj5u.com熱心網友回復:
這會覆寫a.Image中的每個專案listDetail,因此您會得到最后一個Image:
foreach (var item in listDetail)
{
a.Image = item.Image;
}
由于您有一個Id屬性,我建議使用它進行同步:
foreach (var item in listDetail)
{
if (item.Id == a.Id)
{
a.Image = item.Image;
break;
}
}
我添加了一個break;,所以你一找到匹配項就跳出回圈。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/413390.html
標籤:
上一篇:如何水平排列導航欄中的串列?
