日期:2014-05-18  浏览次数:20974 次

循环数组
已知一个数组 byte[] aa=new byte[]{dd,ss,dd,ss,dd,ssx,xx};//这个并卜是固定的啊 这样写只是举个小例子
 把这个数组循环放到 byte[] bb=new byte[100];中去 
最后bb数组的结果为{dd,ss,dd,ss,dd,ssx,xx,dd,ss,dd,ss,dd,ssx,xx,dd,ss,dd,ss,dd,ssx,xx.....} 


------解决方案--------------------
lz真富,给分不少。
------解决方案--------------------
循环 aa,然后 放到 bb指定的位置

for(int i=0;i<aa.Length;i++)
{
bb[i] = aa[i];
}
------解决方案--------------------
C# code

            int l = aa.Count();
            for (int i = 0; i < bb.Count(); i++)
            {
                bb[i] = aa[i%l];
            }

------解决方案--------------------
C# code
        byte[] a = new byte[] { 1, 2, 3, 4, 5 };
        byte[] b = new byte[100];
        for (int i = 0, t = 0; i < b.Length; i++)
        {
            if (i % a.Length == 0)
                t = 0;
            b[i] = a[t++];
        }

------解决方案--------------------
你得知道dd,ss,dd,ss,dd,ssx,xx每个的长度才能控制吧
------解决方案--------------------
byte[] aa = new byte[7] { 1,2,3, 4,5,6,7 };//范围是0 到 255
byte[] demo = new byte[100];
int i = 0;
for (int j = 0; j < demo.Length; j++)
{
if (i == aa.Length - 1)
{
i = 0;
}
demo[j] = aa[i];
i++;
}
------解决方案--------------------
不是很清楚你的处理过程

不知道你后面不足的那块这么处理,是补0,还是不补,还是继续填充原始数组的一部分

不过大体思路其实,就是不停拼接原始数组,只到超出长度,然后Array.copy给目标数组就ok了
------解决方案--------------------
探讨

C# code
byte[] a = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = new byte[100];
for (int i = 0, t = 0; i < b.Length; i++)
{
if (i % a.Length == 0)
……

------解决方案--------------------
楼上那么多正解!
------解决方案--------------------
假设不足的部分不做处理,直接Array.copy即可
C# code

  byte[] a = new byte[] { 1, 2, 3, 4, 5 };
            byte[] b = new byte[100];



            for (int i = 0; i < 100/a.Length; i++)
            {
                Array.Copy(a, 0, b, i * a.Length, a.Length);
                
            }

------解决方案--------------------
C# code
  byte[] a = new byte[] { 1, 2, 3 };
            byte[] b = new byte[100];



            for (int i = 0; i < 100/a.Length; i++)
            {
                Array.Copy(a, 0, b, i * a.Length, a.Length);
                
            }
        
            //如果你后面还要继续填充,但是又保证不超索引的话则可以继续处理一下

            int m = 100 % a.Length;

            Array.Copy(a, 0, b, 100 - m, m);

------解决方案--------------------
byte[] a = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = new byte[100];
for (int i = 0, t = 0; i < b.Length; i++)
{
if (i % a.Length == 0)
t = 0;
b[i] = a[t++];
}
------解决方案--------------------
byte[] a = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = new byte[100];
for (int i = 0, t = 0; i < b.Length; i++)