【问题标题】:Clearing button Array清除按钮数组
【发布时间】:2013-03-15 14:07:42
【问题描述】:

我正在使用以下代码创建一个按钮网格:

Button[][] buttons;

在方法中:

for (int r = 0; r < row; r++)
    {
       for ( int c = 0; c < col; c++)
           {
             buttons[r][c] = new Button();
           }
    }

如果rowcol 发生更改,我如何清除和重置buttons[][],有办法吗?

【问题讨论】:

  • 清除和重置是什么意思?
  • 以同样的方式清除数组..也许我正在尝试做一些不存在的事情
  • buttons 是一个数组。您可以将元素设置为null

标签: c# arrays winforms visual-studio-2010 button


【解决方案1】:

【讨论】:

    【解决方案2】:

    是的,有。您可以调用Array.Clear() 函数。由于您的数组包含Button 对象,它们是引用类型,因此它将数组中的每个项目重置为null

    Array.Clear(buttons, 0, buttons.Length);
    

    但是,我强烈建议为此使用通用容器之一,而不是原始数组。例如,List&lt;T&gt; 将是一个不错的选择。在您的情况下,T 将是 Button

    using System.Collections.Generic;  // required at the top of the file for List<T>
    
    List<Button> buttons = new List<Button>();
    

    要像二维数组一样使用它,您将需要一个嵌套列表(基本上,一个包含ListList 包含Button 对象)。语法有点吓人,但不难理解它的含义:

    List<List<Button>> buttons = new List<List<Button>>();
    

    【讨论】:

    • @Hogan 你可以声明一个List&lt;List&lt;Button&gt;&gt;,它的操作几乎相同。
    • @cody 如何填充列表>
    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多