Home >Backend Development >C++ >How Does the `yield` Keyword Work in C# to Create Iterators and Improve Performance?
In c#
Keywords: iterator and performance optimization yield
The keyword plays a vital role in C#. It simplifies the implementation of the enumers and the creation of iterators, and significantly improves the readability and performance of the code. Let us understand its functions in depth.
Gradually return the result (yield
)
The keyword allowed method is suspended and the results are gradually returned. When the call function iterates an object of the Yielding Results
interface, the method of keywords is repeatedly called until the sequence is over. This mechanism is called "yielding".
For example, consider the following code fragment: yield
IEnumerable
yield
Methods return to objects from
Implement the iterator (
<code class="language-csharp">IEnumerable<object> FilteredList() { foreach (object item in FullList) { if (IsItemInPartialList(item)) yield return item; } }</code>)
FilteredList()
FullList
The keywords simplify the creation of the customizer. In the early version of C#, the
Provides a more concise and more statement method:
Implementing Iterators
This code returns an integer sequence without explicit iterative logic.
Actual application (yield
) IEnumerator
yield
<code class="language-csharp">public IEnumerable<int> Integers() { yield return 1; yield return 2; yield return 4; yield return 8; yield return 16; yield return 16777216; }</code>is often used in inertial value of value, such as retrieved data from a database. Consider the following example:
This method constructs a enumerator, obtains a record from the database table, and creates an object with the mapping function
to create the type T. By using , this method avoid loading the entire result set to the memory, so as to improve performance when processing large data sets.
The above is the detailed content of How Does the `yield` Keyword Work in C# to Create Iterators and Improve Performance?. For more information, please follow other related articles on the PHP Chinese website!