PK \L 1 02-ParametricIteratorMethods-ParallelEnumeration/PK +^WHTh ; 02-ParametricIteratorMethods-ParallelEnumeration/App.config
PK +^WH66Ֆ
Q 02-ParametricIteratorMethods-ParallelEnumeration/ParametricIteratorMethods.csproj
Debug
AnyCPU
{643F3826-3E66-47B8-B632-15BC2D9E8E10}
Exe
Properties
ParametricIteratorMethods
ParametricIteratorMethods
v4.5.2
512
true
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
PK +^WH_ N 02-ParametricIteratorMethods-ParallelEnumeration/ParametricIteratorMethods.sln
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParametricIteratorMethods", "ParametricIteratorMethods.csproj", "{643F3826-3E66-47B8-B632-15BC2D9E8E10}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{643F3826-3E66-47B8-B632-15BC2D9E8E10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{643F3826-3E66-47B8-B632-15BC2D9E8E10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{643F3826-3E66-47B8-B632-15BC2D9E8E10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{643F3826-3E66-47B8-B632-15BC2D9E8E10}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
PK I\J8^ ; 02-ParametricIteratorMethods-ParallelEnumeration/Program.csusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ParametricIteratorMethods {
class A {
public int x;
public IEnumerable Range(int from, int to) {
Console.WriteLine("+ A.Range: before 1st yield return");
from--;
to++;
for (int i = from; i <= to; i++) {
yield return x + i;
}
x += 100;
Console.WriteLine("+ A.Range: after last yield return");
}
}
class Program {
static void Main(string[] args) {
A a = new A();
var range = a.Range(1, 5);
Console.WriteLine("Main: before foreach");
foreach (int vo in range) {
Console.WriteLine($"Main: OUTER: got {vo}");
if (vo == 3) {
foreach (int vi in range) {
Console.WriteLine($"Main: INNER: got {vi}");
}
}
}
Console.WriteLine("Main: after foreach");
}
}
}
PK \L <