c#索引超出数组界限,定义了一个数组,读完了以后设置了一个for循环,然后提示我索引超出数组界限
byte[4] bt0=new byte[4];
byte[4]bt1=new byte[4];
bt0=bread.readbytes(4);
for(int i=0,j=3;i<4;i++,j--)
{
bt1[j]=bt0[i];
}
c#索引超出数组界限
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
CSDN专家-showbo 2022-07-05 12:01关注bread是什么对象。可能越界的bt0的操作,应该是数据量不够4个。直接用Array.Reverse反转数组就行,没必要for也就不会出现越界错误,比如下面这样

using System; namespace demo { class Program { static void Main(string[] args) { byte[] bt0 =new byte[4] { 0, 1, 2, 3 };// bread.readbytes(4) byte[] bt1 = new byte[4]; bt0.CopyTo(bt1, 0); Array.Reverse(bt1); Console.WriteLine(string.Join(",", bt0)); Console.WriteLine(string.Join(",", bt1)); Console.ReadKey(); } } }一定要for改成下面这样,以bt0,bt1最大长度作为界限防止越界错误
for (int i = 0, j = 3,k= Math.Min(bt0.Length, bt1.Length); i < k; i++, j--) { bt1[j] = bt0[i]; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用 1