Skip to content

Instantly share code, notes, and snippets.

@EricSch
Created April 9, 2009 17:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EricSch/92603 to your computer and use it in GitHub Desktop.
Save EricSch/92603 to your computer and use it in GitHub Desktop.
[CompilerGenerated]
private sealed class <Zip>d__0<T1, T2> : IEnumerable<KeyValuePair<T1, T2>>, IEnumerable, IEnumerator<KeyValuePair<T1, T2>>, IEnumerator, IDisposable
{
// Fields
private int <>1__state;
private KeyValuePair<T1, T2> <>2__current;
public IEnumerable<T1> <>3__first;
public IEnumerable<T2> <>3__second;
private int <>l__initialThreadId;
public IEnumerator<T1> <firstEnumerator>5__1;
public IEnumerator<T2> <secondEnumerator>5__2;
public IEnumerable<T1> first;
public IEnumerable<T2> second;
// Methods
[DebuggerHidden]
public <Zip>d__0(int <>1__state)
{
this.<>1__state = <>1__state;
this.<>l__initialThreadId = Thread.CurrentThread.ManagedThreadId;
}
private void <>m__Finally3()
{
this.<>1__state = -1;
if (this.<firstEnumerator>5__1 != null)
{
this.<firstEnumerator>5__1.Dispose();
}
}
private void <>m__Finally4()
{
this.<>1__state = 1;
if (this.<secondEnumerator>5__2 != null)
{
this.<secondEnumerator>5__2.Dispose();
}
}
private bool MoveNext()
{
try
{
switch (this.<>1__state)
{
case 0:
this.<>1__state = -1;
if ((this.first != null) && (this.second != null))
{
this.<firstEnumerator>5__1 = this.first.GetEnumerator();
this.<>1__state = 1;
this.<secondEnumerator>5__2 = this.second.GetEnumerator();
this.<>1__state = 2;
while (this.<firstEnumerator>5__1.MoveNext() && this.<secondEnumerator>5__2.MoveNext())
{
this.<>2__current = new KeyValuePair<T1, T2>(this.<firstEnumerator>5__1.Current, this.<secondEnumerator>5__2.Current);
this.<>1__state = 3;
return true;
Label_0092:
this.<>1__state = 2;
}
this.<>m__Finally4();
this.<>m__Finally3();
}
break;
case 3:
goto Label_0092;
}
return false;
}
fault
{
this.System.IDisposable.Dispose();
}
}
[DebuggerHidden]
IEnumerator<KeyValuePair<T1, T2>> IEnumerable<KeyValuePair<T1, T2>>.GetEnumerator()
{
EntityUtil.<Zip>d__0<T1, T2> d__;
if ((Thread.CurrentThread.ManagedThreadId == this.<>l__initialThreadId) && (this.<>1__state == -2))
{
this.<>1__state = 0;
d__ = (EntityUtil.<Zip>d__0<T1, T2>) this;
}
else
{
d__ = new EntityUtil.<Zip>d__0<T1, T2>(0);
}
d__.first = this.<>3__first;
d__.second = this.<>3__second;
return d__;
}
[DebuggerHidden]
IEnumerator IEnumerable.GetEnumerator()
{
return this.System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<T1,T2>>.GetEnumerator();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
void IDisposable.Dispose()
{
switch (this.<>1__state)
{
case 1:
case 2:
case 3:
try
{
switch (this.<>1__state)
{
}
break;
try
{
}
finally
{
this.<>m__Finally4();
}
}
finally
{
this.<>m__Finally3();
}
break;
default:
return;
}
}
// Properties
KeyValuePair<T1, T2> IEnumerator<KeyValuePair<T1, T2>>.Current
{
[DebuggerHidden]
get
{
return this.<>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return this.<>2__current;
}
}
}
Collapse Methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment