直接贴代码了,代码也不是很复杂,但在阅读的时候,不认真想,还有可能出错,特别像我这样基础不扎实的人
// 定义一个20个元素的数组
byte[] oldBuf = new byte[20];
oldBuf[0] = 1;
oldBuf[1] = 2;
oldBuf[2] = 3;
oldBuf[3] = 4;
oldBuf[4] = 5;
oldBuf[5] = 6;
oldBuf[6] = 7;
oldBuf[7] = 8;
oldBuf[8] = 9;
oldBuf[9] = 10;
oldBuf[10] = 11;
oldBuf[11] = 12;
oldBuf[12] = 13;
oldBuf[13] = 14;
oldBuf[14] = 15;
oldBuf[15] = 16;
oldBuf[16] = 17;
oldBuf[17] = 18;
oldBuf[18] = 19;
oldBuf[19] = 20;
// 观察这个循环的输出
for (int i = 0; i < oldBuf.Length - 1; i++)
{
Console.Write("第 {0} 次循环: \n", i+1);
byte[] newBuf = new byte[oldBuf.Length - i];
Array.Copy(oldBuf, i, newBuf, 0, oldBuf.Length - i);
Console.WriteLine(newBuf.Length.ToString());
foreach (byte b in newBuf)
{
Console.Write(b.ToString() + " ");
}
if (newBuf.Length == 13)
{
Console.WriteLine("出现==13==的情况");
}
else if (newBuf.Length == 5)
{
Console.WriteLine("出现==5==的情况");
}
Console.WriteLine(" ");
}输出 我 贴在这里
第 1 次循环: 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 2 次循环: 19 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 3 次循环: 18 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 4 次循环: 17 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 5 次循环: 16 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 6 次循环: 15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 7 次循环: 14 7 8 9 10 11 12 13 14 15 16 17 18 19 20 第 8 次循环: 13 8 9 10 11 12 13 14 15 16 17 18 19 20 出现==13==的情况 第 9 次循环: 12 9 10 11 12 13 14 15 16 17 18 19 20 第 10 次循环: 11 10 11 12 13 14 15 16 17 18 19 20 第 11 次循环: 10 11 12 13 14 15 16 17 18 19 20 第 12 次循环: 9 12 13 14 15 16 17 18 19 20 第 13 次循环: 8 13 14 15 16 17 18 19 20 第 14 次循环: 7 14 15 16 17 18 19 20 第 15 次循环: 6 15 16 17 18 19 20 第 16 次循环: 5 16 17 18 19 20 出现==5==的情况 第 17 次循环: 4 17 18 19 20 第 18 次循环: 3 18 19 20 第 19 次循环: 2 19 20