从数组中删除元素。指数。 C#。列表<双> </双>

时间:2013-12-10 07:15:56

标签: c# arrays list indexing

我需要你的帮助。我想这很简单。 所以。我在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”。也许我错了。我怎样才能保存索引?或许我应该从头开始循环? 需要你的帮助!谢谢!

3 个答案:

答案 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--);