我需要你的帮助。我想这很简单。 所以。我在C#中使用数组工作。
var TinArr = new List<double>();
接下来我有一些元素。例如:
TinArr[0]=0.5;
TinArr[1]=0.6;
TinArr[2]=1.1;
TinArr[3]=1.5;
确定。然后我循环删除其中一些:
for (var j = 0; j < TinArr.Count; j++)
{
if (TinArr[j] <= 1)
{
TinArr.RemoveAt(j);
}
}
据我所知,当我删除索引为“0”的元素时,此操作后索引为“1”的下一个元素将具有索引“0”。也许我错了。我怎样才能保存索引?或许我应该从头开始循环? 需要你的帮助!谢谢!
答案 0 :(得分:4)
您只需使用RemoveAll
方法:
TinArr.RemoveAll(x => x <= 1);
但如果要求使用for
- 循环,则应从最后开始:
for (var j = TinArr.Count - 1; j >= 0; j--)
{
if (TinArr[j] <= 1)
{
TinArr.RemoveAt(j);
}
}
答案 1 :(得分:1)
相反地做,比如
for (var j =TinArr.Count - 1; j >= 0; j--)
{
if (TinArr[j] <= 1)
{
TinArr.RemoveAt(j);
}
}
答案 2 :(得分:0)
你几乎是自己做的,只是错过了后减:
for (var j = 0; j < TinArr.Count; j++)
if (TinArr[j] <= 1)
TinArr.RemoveAt(j--);