用可接受的替代方法替换“while”语句

时间:2017-07-24 17:54:00

标签: c# unity3d

我有一个脑力,似乎无法找出如何替换这个“同时”的可接受的模拟,它将使用相同的结果。我尝试的每一件事都会使函数产生不准确的结果(???),这让我很生气。

public void AllDecendantsList(Transform transform)
{
    List<Transform> tempList = new List<Transform>();;
    int CurrentTransformIndex = tempList.Count;
    foreach (Transform t in transform)
    {
        if (condition)
        {
            //stuff
            this.myDict.Add(t.gameObject, value);
        }
        tempList.Add(t);
    }
    while (CurrentTransformIndex < tempList.Count)
    {
        Transform currentTransform= tempList[CurrentTransformIndex++];
        if (currentTransform.childCount > 0)
        {
            foreach (Transform t2 in currentTransform)
            {
                if (condition)
                {
                    //stuff
                    this.myDict.Add(t2.gameObject, value);
                }
                tempList.Add(t2);
            }

        }
    }
}

任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

另一种方法吗?您总是可以执行隐式转换,只需设置一个等于CurrentTransformIndex的整数。

int  i = CurrentTransformIndex;
for(i; i < returnValue.Count; i++)
  {
     //Do something
  }

希望这有帮助