나는 왜 for 루프가 한 번만 반복되는지 전혀 모른다. 나는 논리가 맞다고 생각한다. 아래는 코드이다.C# 왜 List.Remove()가 'for loop'을 나눕니까?
// the list is named 'dataList'
for(int i = 0 ; i < dataList.Count; i ++)
{
string[] data = dataList[i].Split('+');
string[] wsno = data[0].Split(':');
if(wsno[1].Equals(tbWorkSheet.Text))
{
dataList.Remove(dataList[i]) <<<< remove string that has the same number
//data removed
//for loop ends up here idk why..
}
}
dataList.Count는 목록의 크기가됩니다.
이 경우는 .. 목록에 저장된 여러 문자열을 제거하려면 각 문자열에 그룹 번호가 있습니다. 그래서 for 루프는 마지막 루프까지 반복됩니다. 그러나 원하는 번호와 동일한 번호의 문자열을 발견하면이를 제거 할 if 문을 실행합니다.
'dataList.Count'가 어떤 값을 구체적으로 무엇입니까? – Arran
반복 횟수는 얼마나됩니까? 그것은 예외를 던지고 있습니까? –
일반적으로이 작업을 역순으로 수행하면 (즉, count-1에서 0으로) 인덱스 관리를 훨씬 쉽게 할 수 있습니다. – spender