嵌套的foreach循环c#

sat*_*urn 0 c# foreach loops

        foreach (int i in a.set)
        {
            foreach (int k in b.set)
            {
                if (i < k)
                {
                    return true;                                
                }
                else if (i > k)
                {
                    return false;
                }
            }
        }


        return false;
    }
Run Code Online (Sandbox Code Playgroud)

我有两套,一套包括3,4,6 b.set包括3,4,5

问题是外循环只迭代一次.但它包含3个元素,为什么呢?

Joe*_*oey 7

你在内循环中返回.这会立即退出包含方法.

  • i3(a.set我们假设现在订单的第一个元素).
    • k3(与上面相同)
    • k4- 因此if满足内循环中的条件并返回方法true.

如您所见,a.set在从方法返回之前,您没有机会迭代所有值.