我正在寻找最有效的方法来网格化IEnumerable<T> A每行之前的所有行IEnumerable<T> B.
例如:
A = {A,B}
B = {1,2,3}
网格划分后:
B = {A,1,B,2,A,3}
没有简单的解决方案,但这样的事情可能有用.模数运算符在这里非常重要,用较少的项重复列表中的结果.
public static List<object> Mesh<T1, T2>(IEnumerable<T1> s1, IEnumerable<T2> s2)
{
T1[] array1 = s1.ToArray();
T2[] array2 = s2.ToArray();
int length1 = array1.Length;
int length2 = array2.Length;
int maxLength = Math.Max(length1, length2);
List<object> result = new List<object>();
for (int i = 0; i < maxLength; i++)
{
result.Add(array1[i % length1]);
result.Add(array2[i % length2]);
}
return result.
}
Run Code Online (Sandbox Code Playgroud)