C# yield簡單迭代

在咱們使用foreach的時候其實每個集合都是實現是IEnumerable接口的 , 若是沒有實現你循環確定是行不通的, 那麼假如沒有實現咱們本身怎麼實現呢,這個是yield是最好的幫助:express

public static  IEnumerable<int> Power(int number, int exponent)
        {
            yield return 3;
            yield return 5;
            yield return 8;
             
        }
static void Main(string[] args)
        {
            var result = Power(2, 8);
            foreach (int i in result)
            {
                Console.Write("{0} ", i);
            }
            Console.ReadKey();
        }

結構確定是 3 5 8函數

注意: yield的返回類型必定要是IEnumerable, 經過 foreach 語句或 LINQ 查詢來使用迭代器方法。 foreach 循環的每次迭代都會調用迭代器方法。 迭代器方法運行到 yield return 語句時,會返回一個 expression,並保留當前在代碼中的位置。 當下次調用迭代器函數時執行從該位置從新啓動。 能夠使用 yield break 語句來終止迭代。 他的好處就是不須要咱們在手動去實現迭代, 簡便代碼, 如此而已,固然現實中須要實現的狀況並非不少code

相關文章
相關標籤/搜索