网上演练
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.4 KiB

<#@ template language="C#" #>// <auto-generated />
#if FAT
using System;
using System.Collections.Generic;
namespace LinqInternal.Collections
{
internal static partial class Extensions
{<#
for (var indice = 2; indice < 17; indice++)
{#>
public static IEnumerable<T> Interleave<T>(<# if (indice != 0) { if (indice == 1) #>IEnumerable<T> obj<# else for (var subindice = 1; subindice <= indice; subindice++){ if (subindice != 1) {#>, <#}#>IEnumerable<T> arg<#=subindice#><#}}#>)
{
<#
for (var subindice = 1; subindice <= indice; subindice++)
{#>
if (arg<#=subindice#> == null)
{
throw new ArgumentNullException("arg<#=subindice#>");
}
<#
}#>
var ok = true;
<#
for (var subindice = 1; subindice <= indice; subindice++)
{#>
using (var enumerator<#=subindice#> = arg<#=subindice#>.GetEnumerator())
<#
}#>
{
while (ok)
{
ok = false;
<#
for (var subindice = 1; subindice <= indice; subindice++)
{#>
if (enumerator<#=subindice#>.MoveNext())
{
yield return enumerator<#=subindice#>.Current;
ok = true;
}
<#
}#>
}
}
}
<#
}#> }
}
#endif