while (list.IndexOf("*") != -1)
{
int num = list.IndexOf("*");
double answer = double.Parse(list.ElementAt(num - 1)) * double.Parse(list.ElementAt(num + 1));
list.Insert(num - 1, answer.ToString());
for (int i = num; i < list.Count - 2; i++)
{
list.Insert(i, list.ElementAt(i + 2));
}
list.RemoveAt(list.Count - 1);
list.RemoveAt(list.Count - 1);
}
{
int num = list.IndexOf("*");
double answer = double.Parse(list.ElementAt(num - 1)) * double.Parse(list.ElementAt(num + 1));
list.Insert(num - 1, answer.ToString());
for (int i = num; i < list.Count - 2; i++)
{
list.Insert(i, list.ElementAt(i + 2));
}
list.RemoveAt(list.Count - 1);
list.RemoveAt(list.Count - 1);
}
{
list.Insert(i, list.ElementAt(i + 2));
}
这种调用可以过编译?
在遍历某集合的时候改动元素数目?!
{
list.Insert(i, list.ElementAt(i + 2));
}
这种调用可以过编译?
在遍历某集合的时候改动元素数目?!
=============
问题就在这里,编译应该可以过,但会导致死循环,导致内存不足。
可能可以这样处理,可以避免死循环(我没仔细看你代码):
int count = list.count-1;
for( int i = num; i < count ; i++)
{
list.Insert(i, list.ElementAt(i + 2));
}