从文本框向C#数组添加元素

从文本框向C#数组添加元素,c#,arrays,textbox,C#,Arrays,Textbox,我正在努力使用C#Windows窗体将一个元素从文本框添加到数组中。到目前为止,我所拥有的: int[] id; private void btnButton1_Click(object sender, EventArgs e) { //INSERTION SORT int newItem = txtAddElement.text; //CODE HERE TO ADD ELEMENT TO ARRAY //CODE

我正在努力使用C#Windows窗体将一个元素从文本框添加到数组中。到目前为止,我所拥有的:

int[] id;

private void btnButton1_Click(object sender, EventArgs e)
    {
        //INSERTION SORT
        int newItem = txtAddElement.text;

        //CODE HERE TO ADD ELEMENT TO ARRAY


        //CODE BELOW THEN SORTS ARRAY INTO CORRECT ORDER

        int element;
        int temp;

        for (int i = 1; i < id.Length; i++)
        {
            element = i - 1;

            while (element >= 0 && id[element] > id[element + 1])
            {
                temp = id[element];
                id[element] = id[element + 1];
                id[element + 1] = temp;
            }
        }

        for (int i = 1; i < id.Length; i++)
        {
            lstPlayers.Items.Add(id[i]);
        }

        txtAddElement.Text = "";
    }
已解决:

  int[] id = new int[0];

无法添加到数组中。您应该使用
列表
,例如

  List<int> id;
  ...

  id.Add(123);

无法添加到数组中。您应该使用
列表
,例如

  List<int> id;
  ...

  id.Add(123);

为什么不改为使用列表呢?好的,如果单击按钮,则调用此处理程序并进行排序,但它不直接从textbox获取任何值。那么你的代码的“文本框部分”在哪里呢?我被问到的问题是使用数组,否则我不会有任何问题。我正在使用BtnadToArray控制文本框,一旦按下按钮,我希望这个按钮将项目添加到数组中,然后它将清空textbox@dragonAMC请显示此代码,因为它是相关的。为什么不使用列表来代替呢?好的,如果单击按钮,则调用此处理程序并进行排序,但它不会直接从textbox获取任何值。那么你的代码的“文本框部分”在哪里呢?我被问到的问题是使用数组,否则我不会有任何问题。我正在使用BtnadToArray控制文本框,一旦按下按钮,我希望这个按钮将项目添加到数组中,然后它将清空textbox@dragonAMC请显示此代码,因为它是相关的(一般情况下),为什么不建议重新调整数组的大小?@БСССССССö:这可能会消耗资源-数组(与
列表不同
)设计为常量大小集合。因为此逻辑已在列表中为您实现。在实现已经完成的任务时,很可能会出现错误。每次我运行程序时,数组都将为空,因此数组大小不会太大,我必须更多地展示我可以做到这一点,而不是展示什么是最有效的。谢谢你的帮助,从现在起我将正常使用列表!!啊哈,当在调整大小中添加时,它表示“对象引用未设置为对象的实例”,请参见上文(一般)为什么不建议重新调整数组的大小?@БСССццццц):这可能会消耗资源-数组(与
列表
不同)设计为常量大小集合。因为此逻辑已在列表中为您实现。在实现已经完成的任务时,很可能会出现错误。每次我运行程序时,数组都将为空,因此数组大小不会太大,我必须更多地展示我可以做到这一点,而不是展示什么是最有效的。谢谢你的帮助,从现在起我将正常使用列表!!啊,当添加到调整大小中时,它表示“对象引用未设置为对象的实例”,请参见上文
  int[] id;
  ... 
  Array.Resize(ref id, id.Length + 1);
  id[id.Length - 1] = 123;