i really have no idea why the for loop only loops once. i think the logic is correct, below is the code.

```
// 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 will be the size of the list.

the case is like this.. 
i want to remove multiple strings stored in a list, each string has its group number. 
So, the for loop will loop until the last one. but when it found a string with the same number with the desired one, it will execute the if statement which is to remove it.