检查列表是否重复

时间:2018-07-25 14:04:35

标签: c# unity3d

我正在尝试检查并运行一个方法,直到它成立为止。

    public struct Letter
{
    public string letter;
}

private void DoStart()
{
    UsedIndexes.Clear();
    BuildGoodGame();
}

List<Letter> usedLetter = new List<Letter>();
private void BuildGoodGame()
{
    usedLetter.Clear();
    Letter temp;
    for (int i = 0; i < Couch.Length; i++)
    {
        do
        {
            couchIndex = CouchNameRandom.getRandom();
            Couch[i].setCurrentChildIndex(couchIndex);
            MisingLetterScript thisLetter = Couch[i].CurrentChild.GetComponent<MisingLetterScript>();
            string s = thisLetter.Letter;
            temp = new Letter
            {
                letter = s
            };
        } while (UsedNames.Contains(couchIndex) || usedLetter.Contains(temp));
        UsedNames.Add(couchIndex);
        usedLetter.Add(temp);
    }
}

我想两次运行此代码,第一次运行正常,它就完全完美了。第二次,我执行Invoke(“ DoStart”,1f),它不再运行,通常冻结Unity。整个问题出在returnable方法中,该方法检查列表是否包含重复项。 我不明白为什么第一次运行良好,然后再次调用DoStart方法后,它却冻结了。救命!!谢谢。

0 个答案:

没有答案