Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to use yield in C#

3 Answers

0 votes
using System;
using System.Collections.Generic;

class Yield_CSharp
{
    static void Main()
    {
        foreach (int i in GetEvenNumbers(10)) {
            Console.Write(i + " ");
        }
    }

    static IEnumerable<int> GetEvenNumbers(int size) {
        // yield return - provide the next value in iteration
        for (int i = 0; i <= size; i += 2) {
            yield return i;
        }
    }
}

  
  
/*
run:
  
0 2 4 6 8 10 
 
*/

 



answered Nov 12, 2024 by avibootz
edited Nov 12, 2024 by avibootz
0 votes
using System;
using System.Collections.Generic;

class Yield_CSharp
{
    static void Main()
    {
        Console.WriteLine(string.Join(" ", PrintWhilePositive(new int[] {1, 2, 5, 7, -1, 9, 8})));
    }

    static IEnumerable<int> PrintWhilePositive(IEnumerable<int> numbers) {
        foreach (int n in numbers) {
            if (n > 0) {
                yield return n;
            }
            else {
                yield break;
            }
        }
    }
}


  
/*
run:
  
1 2 5 7
 
*/

 



answered Nov 12, 2024 by avibootz
0 votes
using System;
using System.Collections.Generic;

class Yield_CSharp
{
    static void Main()
    {
        var numbers = PrintEvenNumbers(7);
        
        Console.WriteLine("Start the foreach loop");
        foreach (int i in numbers) {
            Console.WriteLine($"foreach: {i}");
        }
    }

    static IEnumerable<int> PrintEvenNumbers(int size) {
        Console.WriteLine("Start Iterator");
        for (int i = 0; i <= size; i += 2) {
            Console.WriteLine($"Before yield {i}");
            yield return i;
            Console.WriteLine($"Iterator: yielded {i}");
        }
        
        Console.WriteLine("End Iterator");
    }
}

  

/*
run:
  
Start the foreach loop
Start Iterator
Before yield 0
foreach: 0
Iterator: yielded 0
Before yield 2
foreach: 2
Iterator: yielded 2
Before yield 4
foreach: 4
Iterator: yielded 4
Before yield 6
foreach: 6
Iterator: yielded 6
End Iterator
 
*/

 



answered Nov 13, 2024 by avibootz

Related questions

...