如何使用foreach循环

时间:2017-04-30 18:12:18

标签: c# list unity3d foreach

我有一些存储在数据库中的值,我正在查询。

因此,对于每个对象,我想将值保存到我的列表中。

目前我正在这样做,我打电话给pr一秒,这样:

foreach (var obj in results)
{   
    MyList.Add (ValueSavedOnDatabase);

}

但我的问题是,如果我在数据库上有20个对象,那么这个函数会将值保存在列表的前20个索引中。 然后每次调用该函数(每秒一次)时,它将向列表添加20个新索引,而不是仅覆盖我需要它的20个索引。 所以在3秒后,我目前在这个列表中得到60个索引(当我只想要20个时)。

有没有人对列表中的这些索引有什么建议,而不是继续创建新索引?

我使用的是Unity和C#。

1 个答案:

答案 0 :(得分:1)

您需要在循环之前清空列表:

MyList.Clear(); // Clear the list

foreach (var obj in results) { // do whatever you need
   MyList.Add (ValueSavedOnDatabase);
}

或者,如果每次调用的列表大小始终相同,则可以执行以下操作:

 int i = 0;
 foreach (var obj in results) { 
   MyList[i] = ValueSavedOnDatabase;
   i++;
}

N.B。如果您使用的是ArrayList,我只会建议最后一次。