gpt4 book ai didi

c# - 可以在遍历列表时修改列表吗?

转载 作者:可可西里 更新时间:2023-11-01 08:32:39 26 4
gpt4 key购买 nike

我有以下内容:

foreach (var depthCard in depthCards)
{
var card = InternalGetCard(db, depthCard.CardId);
var set = InternalGetSet(db, (int)card.ParentSetId);
var depthArray = InternalGetDepthArrayForCard(db, set.SetId);
foreach (var cardToUpdate in set.Cards)
{
// do stuff
SaveChanges(db);
// since I already took care of it here, remove from depthCards
depthCards.Remove(depthCardToUpdate);
}
}

虽然这不起作用,因为我正在循环中间修改集合。是否有某种类型的集合允许此类访问?

我不想 ToList() depthCards 因为我已经有了它们而且我修改那个列表米迭代。这可能吗?

最佳答案

有可能,诀窍是向后迭代:

for (int i = depthCards.Count - 1; i >= 0; i--) {
if (depthCards[i] == something) { // condition to remove element, if applicable
depthCards.RemoveAt(i);
}
}

关于c# - 可以在遍历列表时修改列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com