我真的不知道为什么for循环只循环一次。我认为逻辑是正确的,下面是代码。C#为什么List.Remove()打破'for循环'?
// 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 2013-02-27 14:44:16
你期待它循环多少次?它抛出异常吗? – 2013-02-27 14:44:18
这通常是为什么在删除(即从count-1到0)时反向迭代的原因......它使索引管理变得更容易。 – spender 2013-02-27 14:47:34