yield return 好用地方

yield return  IEnumerable

分兩段CODE

   private static List<object> GetData()
        {
            List<object> lo = new List<object>();
            for (int i = 0;i< int.MaxValue ; ++i) {
                lo.Add(i);
            }
            return lo;
        }
        
        private static IEnumerable<object> GetData()
        {
            for (int i = 0;i< int.MaxValue ; ++i) {
                yield return i;
            }
        }

呼叫端

 foreach (var data in GetData()) {
                Console.WriteLine(data);
            }

用yield return + IEnumerable可以控制記憶體在10 mb以內而且都可以快速回復
但是如果用list 她必須要組好出來的物件一次回應
這兩者的差異 可能在少量沒差
但是我用的這個是max   如果是使用list 直接hang到2G才結束然後才有東西慢慢PRINT出來
這回歸到yield return的一次回應一個的好處

從這邊可以看反組譯的CODE
https://iter01.com/197081.html
具體上少資料沒有差
但是select 大資料出來就有差(但是有時候配上資料庫還有另一個雷區)