Advertisement
Caminhoneiro

Return collection from even numbers with/without yeld (time)

Jul 17th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.02 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Linq;
  3.  
  4.         [TestMethod]
  5.         public void WithoutYield()
  6.         {
  7.             var someNumbers = Enumerable.Range(1, 10); //Creating an range from a number from minimum to maximum
  8.  
  9.              //var evens = GetEvenNumbers(someNumbers); //Processing input first, output after
  10.              var evens = GetEvenNumbersUsingYield(someNumbers); //Processing and outputing result as it comes
  11.            
  12.  
  13.             foreach (var even in evens)
  14.             {
  15.                 Debug.WriteLine("Output: " + even);
  16.  
  17.                 //if (even == 6)
  18.                 //{
  19.                 //    break;
  20.                 //}
  21.             }
  22.         }
  23.  
  24.  
  25.  
  26.         IList<int> GetEvenNumbers(IEnumerable<int> numbers)
  27.         {
  28.             List<int> evens = new List<int>();
  29.  
  30.             foreach (var number in numbers)
  31.             {
  32.                 Debug.WriteLine("GetEvenNumbers: Processing input number: " + number);
  33.  
  34.                     if (number%2 == 0)
  35.                     {
  36.                         evens.Add(number);
  37.                     }
  38.             }
  39.  
  40.             return evens;
  41.         }
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.         IEnumerable<int> GetEvenNumbersUsingYield(IEnumerable<int> numbers)
  50.         {          
  51.             foreach (var number in numbers)
  52.             {
  53.                 Debug.WriteLine("GetEvenNumbersUsingYield: Processing input number: " + number);
  54.  
  55.                 if (number % 2 == 0)
  56.                 {
  57.                     Debug.WriteLine("GetEvenNumbersUsingYield: yielding: " + number);
  58.                     yield return number;
  59.                 }
  60.             }
  61.         }
  62.  
  63.  
  64.  
  65.     [TestClass]
  66.     public class IntegerNumberSequenceGeneration
  67.     {
  68.        
  69.         [TestMethod]
  70.         public void EnumerableRange()
  71.         {
  72.             var oneToTen = Enumerable.Range(1, 10);
  73.  
  74.             int[] twentyToThirty = Enumerable.Range(20, 11).ToArray();
  75.  
  76.             List<int> oneHundredToOneThirty = Enumerable.Range(100, 31).ToList();
  77.         }
  78.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement