저는이 루프를 잠시 동안 고치려고 노력해 왔습니다. 나는 몇 세대를 거쳤습니다.이 컬렉션을 반복하면 항상 마지막 요소가 누락됩니다.
이 코드는 몇 가지 기준에 따라 플랜트 개체 모음을 반복 한 다음 원하는 플랜트 개체를 만듭니다.
목록에있는 각 개체를 사용해야합니다.
목록의 마지막 개체까지 작동합니다. 웬일인지, 그것은 단지 콜렉션의 마지막 구성원을 치지 않으며, 전에는 실행을 항상 중단합니다. 그래서 나는 마지막으로 제외한 모든 새로운 식물 형 개체를 필요로합니다.
이 목록은이 같은 IList의 사용 : 여기
IList<PlantType> plants;
루프입니다 :
(nextPosition != stopPosition)
에 :
를var currentPosition = 0;
var nextPosition = (currentPosition + 1) % plants.Count;
var stopPosition = plants.Count - 1;
var HalfLife = 90;
while ((nextPosition != stopPosition) && plants[currentPosition].cell_A + HalfLife >= plants[nextPosition].Cell_Z)
{
plantName = plantName + ";" + plants[currentPosition].Name;
currentPosition = nextPosition;
nextPosition = (currentPosition + 1) % plants.Count;
}
yield return
CreateNewPlantType(plantName);
내가 시도 while 문이 부분을 변경
(nextPosition < stopPosition)
하지만 여전히 목록의 마지막 요소가 누락됩니다.
(nextPosition <= stopPosition)
을하지만 무한 루프를 만듭니다
나는 또한이 시도!
그래서이 문제를 해결하는 방법을 모르겠습니다.
아이디어가 있으십니까?
감사합니다.
'stopPosition = plants.Count'을 사용해보십시오. _next_ 위치가 범위를 벗어 났을 때 멈추고 있는데, 이것은 배열의 마지막 위치에 해당합니다. –
실제로는 '% plants.Count' 위치를 취한 이후로 무한 할 것입니다. 모듈의 목적은 무엇입니까? –