C#索引在阵列的界限之外

Minatsu 发布于 2016/10/18 22:58
阅读 611
收藏 0
各位好
假如 我在textbox1 输入 00 01 02 03 0A 0B 然后 button1_Click
buffer阵列 存入内容 然后在 richTextBox1 Show 出来
然后 我再把buffer阵列里的元素 依依存入 copy 阵列
但执行时 却出现 索引在阵列的界限之外
请问有人知道为什么吗? 一开始 索引=0 (i=0) 就在阵列的界限之外?

(我的copy阵列并不是完全等于buffer阵列 因为我之后会做一些元素判断处理(舍弃) 再存入copy 阵列
不能直接等于buffer阵列,所以无法事先知道copy 阵列长度, 所以我不懂为什么 索引在阵列的界限之外
我知道或许能用别的方式完成我想要的功能,但还是想知道 为什么 索引在阵列的界限之外 这个问题)
先谢谢回答了

public partial class Form1 : Form
    {
        string context ;
        string[] buffer ;
        string[] copy = new string[]{};
        int count = new int() ;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            buffer = textBox1.Text.Split(' ');
            for (int i = 0; i < buffer.Length; i++)
            {
                richTextBox1.Text += buffer[i] + " ";
                context = buffer[i];
                copy[i] = context; //执行后这里出现 索引在阵列的界限之外
                richTextBox1.Text += copy[i] + " ";
            }           
        }
    }





加载中
0
大止刀口
大止刀口

C#里数组不能变长,要可变长的用List<string>,即:

string[] copy = new string[]{}
//改成List在System.Collections.Generic里
List<string> copy = new List<string>();

copy[i] = context;
//改成
copy.Add(context);


还有,为什么你的int count要用new int();直接int count = 0;不好吗?

Minatsu
Minatsu
谢谢我大约知道为什么了 至such int count = new int(); 为什么会这样写呢 is因为我用委派处理别的事情但在使用i这个变数时 显示错误:他不是物件...之类的看是不是没有新物件 我也不知道为什么所以我才写int count = new int()试看看
0
dy810810
dy810810

问题出在这里:string[] copy =new string[]{};

哥们你以前是做php的吗?

0
大止刀口
大止刀口

对了,你也可以在:

buffer = textBox1.Text.Split(' ');
//这里加下面这句,就不用List<string>了。
copy = new string[buffer.Length];



返回顶部
顶部