循环数组
已知一个数组 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了
[解决办法]
[解决办法]
楼上那么多正解!
[解决办法]
假设不足的部分不做处理,直接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++)
{
if (i % a.Length == 0)
t = 0;
b[i] = a[t++];
}
[解决办法]
如果是每隔两个一加入呢 使其结果为
脑袋转个弯,就ok了
为啥一定要想成是隔两个加入呢?你为啥不能想成原始数组本来前面就带两个0呢?
byte[] a = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = new byte[100];
for (int i = 0; i < 100/a.Length+2; i++)
{
Array.Copy(a, 0, b, i * a.Length+2, a.Length);
}
[解决办法]
好像回复又被csdn给吞了
[解决办法]
byte[] a = new byte[] { 1, 2, 3,4,5 };
byte[] b = new byte[100];
for(int i = 0; i< 100;)
{
Array.Copy(a, 0, b, i, a.Length);
i += a.Length;
}
[解决办法]
Array.Copy
[解决办法]
唉,回复被csdn吃了,我再发一遍把
如果是每隔两个一加入呢
请转换你的思维,为啥一定要想成每隔2个加入呢?为啥不想成原始数组前面2位是空的呢??
byte[] a = new byte[] { 1, 2, 3, 4, 5 };
byte[] b = new byte[100];
for (int i = 0; i < 100/(a.Length+2) ; i++)
{
Array.Copy(a, 0, b, i * (a.Length+2) , a.Length);
}
[解决办法]
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++;
}
其实就是个循环啊,进来打酱油