gpt4 book ai didi

c# - 删除给定索引处的列表元素

转载 作者:可可西里 更新时间:2023-11-01 09:16:56 27 4
gpt4 key购买 nike

我有一个列表,其中包含一些字符串类型的项目。

List<string> lstOriginal;

我有另一个列表,其中包含应该从第一个列表中删除的 idices。

List<int> lstIndices;

我曾尝试使用 RemoveAt() 方法完成这项工作,

foreach(int indice in lstIndices)
{
lstOriginal.RemoveAt(indice);
}

但它崩溃并告诉我“索引超出范围。”

最佳答案

您需要将要返回的索引从大到小排序,以避免删除错误索引处的内容。

foreach(int indice in lstIndices.OrderByDescending(v => v))
{
lstOriginal.RemoveAt(indice);
}

原因如下:假设有一个包含五个项目的列表,您想要删除索引 24 处的项目。如果您先删除位于 2 的项目,则位于索引 4 的项目将位于索引 3,而索引 4 将不再出现在列表中(导致您的异常)。如果您倒退,所有索引都会在您准备好删除相应项目的那一刻出现。

关于c# - 删除给定索引处的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908564/

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