Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- using System.Linq;
- [TestMethod]
- public void WithoutYield()
- {
- var someNumbers = Enumerable.Range(1, 10); //Creating an range from a number from minimum to maximum
- //var evens = GetEvenNumbers(someNumbers); //Processing input first, output after
- var evens = GetEvenNumbersUsingYield(someNumbers); //Processing and outputing result as it comes
- foreach (var even in evens)
- {
- Debug.WriteLine("Output: " + even);
- //if (even == 6)
- //{
- // break;
- //}
- }
- }
- IList<int> GetEvenNumbers(IEnumerable<int> numbers)
- {
- List<int> evens = new List<int>();
- foreach (var number in numbers)
- {
- Debug.WriteLine("GetEvenNumbers: Processing input number: " + number);
- if (number%2 == 0)
- {
- evens.Add(number);
- }
- }
- return evens;
- }
- IEnumerable<int> GetEvenNumbersUsingYield(IEnumerable<int> numbers)
- {
- foreach (var number in numbers)
- {
- Debug.WriteLine("GetEvenNumbersUsingYield: Processing input number: " + number);
- if (number % 2 == 0)
- {
- Debug.WriteLine("GetEvenNumbersUsingYield: yielding: " + number);
- yield return number;
- }
- }
- }
- [TestClass]
- public class IntegerNumberSequenceGeneration
- {
- [TestMethod]
- public void EnumerableRange()
- {
- var oneToTen = Enumerable.Range(1, 10);
- int[] twentyToThirty = Enumerable.Range(20, 11).ToArray();
- List<int> oneHundredToOneThirty = Enumerable.Range(100, 31).ToList();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement