यील्ड कीवर्ड संग्रह पर कस्टम स्टेटफुल पुनरावृत्ति करने में मदद करता है। मतलब जब हम यील्ड कीवर्ड का इस्तेमाल करते हैं तो कंट्रोल कॉलर फंक्शन से सोर्स पर आगे-पीछे चलता है और इसके विपरीत।
उदाहरण
using System; using System.Collections.Generic; namespace DemoApplication { class Program { static List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 }; public static void Main() { foreach(int i in RunningTotal()) { Console.WriteLine(i); } Console.ReadLine(); } public static IEnumerable<int> RunningTotal() { int runningTotal = 0; foreach(int i in numbersList) { runningTotal += i; yield return (runningTotal); } } } }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट है
1 3 6 10 15
उपरोक्त उदाहरण में, प्रत्येक मुख्य विधि के लिए हम चल रहे कुल की संख्या सूची के माध्यम से लूप कर रहे हैं। तो जब भी उपज वापसी कहा जाता है तो नियंत्रण प्रत्येक लूप के लिए मुख्य विधि पर वापस जाता है और मूल्यों को प्रिंट करता है। एक बार मूल्य को प्रिंट करने के बाद नियंत्रण फिर से चल रहे कुल में से प्रत्येक के लिए चला जाता है। एक बात जो यहां ध्यान देने की जरूरत है वह यह है कि पिछला मूल्य भी संरक्षित है। तो बस, उपज कीवर्ड प्रभावी रूप से संग्रह आइटम पर एक आलसी गणना बनाता है जो अधिक कुशल हो सकता है।