直接贴代码了,代码也不是很复杂,但在阅读的时候,不认真想,还有可能出错,特别像我这样基础不扎实的人
// 定义一个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