网格化IEnumerable <T>列在一起

COB*_*BOL 1 c# linq

我正在寻找最有效的方法来网格化IEnumerable<T> A每行之前的所有行IEnumerable<T> B.

例如:

A = {A,B}

B = {1,2,3}

网格划分后:

B = {A,1,B,2,A,3}

Seb*_*hle 7

没有简单的解决方案,但这样的事情可能有用.模数运算符在这里非常重要,用较少的项重复列表中的结果.

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)