2017-04-30 2 views
0

나는 쿼리하는 일부 값을 데이터베이스에 저장합니다.foreach 루프를 사용하여 목록의 값을 업데이트하는 방법

각 개체에 대해 값을 내 목록에 저장하고 싶습니다.

은 현재이 같은, 내가 두 번째 한 번 전화를 홍보하는 기능에, 그 일을 해요 :

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

} 

하지만 내 문제입니다, 내가 가지고있는 경우, 예를 들어, 데이터베이스에 20 개체, 이 함수는 목록의 처음 20 개의 인덱스에 값을 저장합니다. 그런 다음 함수가 호출 될 때마다 (초당 한 번) 함수는 필요할 때마다 20 개의 인덱스를 덮어 쓰지 않고 목록에 20 개의 새로운 인덱스를 추가합니다. 그래서 3 초 후에, 나는 현재이 목록에서 60 개의 색인을 얻습니다 (단지 20 개를 원할 때).

새 인덱스 생성을 계속하는 대신 목록에서 이러한 인덱스를 덮어 쓸 수있는 방법에 대한 조언이 있습니까?

저는 Unity와 C#을 사용하고 있습니다.

답변

1

당신은 루프 전에 목록을 비우해야합니다

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

또는 목록의 크기가 항상 각 호출 당 같은 경우, 당신은이 작업을 수행 할 수

MyList.Clear(); // Clear the list 

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

NBArrayList을 사용하는 경우를 대비하여이 마지막으로만 제안합니다.

+0

고마워요 granmirupa, 그 트릭을 한 :) – sandaola

관련 문제