我有一些存储在数据库中的值,我正在查询。
因此,对于每个对象,我想将值保存到我的列表中。
目前我正在这样做,我打电话给pr一秒,这样:
foreach (var obj in results)
{
MyList.Add (ValueSavedOnDatabase);
}
但我的问题是,如果我在数据库上有20个对象,那么这个函数会将值保存在列表的前20个索引中。 然后每次调用该函数(每秒一次)时,它将向列表添加20个新索引,而不是仅覆盖我需要它的20个索引。 所以在3秒后,我目前在这个列表中得到60个索引(当我只想要20个时)。
有没有人对列表中的这些索引有什么建议,而不是继续创建新索引?
我使用的是Unity和C#。
答案 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
,我只会建议最后一次。