C# —— List数组

int[] a = new int[] { 1, 2, 3 };//array静态数组
ArrayList aa = new ArrayList();// d动态数组

 List 集合和ArrayList基本一样,只不过List是C#2.0版本新加入的泛型类型。List也可以通过索引操作里面的元素,也有对List记性增删改查操作 

 List构建List 

 var list = new List<int>();// 定义整形的集合
 var list2 = new List<int>() { 2, 3 }; 

1.添加元素 

list.Add(1);
list.Add(2);
list.AddRange(list2);

Console.WriteLine(string.Join(",",list.ToArray()));// toArray , 把list转换成Array

2查询元素
            // 通过索引值查询

Console.WriteLine(list[2]);

 3删除元素

list.Remove(1);// 删除指定元素
            // list.RemoveAt(2);// 删除指定位置元素
            // list.RemoveRange(0,2); // 删除指定范围内的元素, 参数1是开始删除的  索引值 参数2是删除的个数;
            // it代表集合所有的元素,便利一个作用
            // Contains()
            // 删除满足条件的所有元素, int2包含list的元素删除掉

list.RemoveAll(it=>list2.Contains(it));// 参数是一个函数,函数吧满足匹配条件的元素全部删除 

4 插入 

list.Insert(0,100);// 在索引值为0插入100元素

 5 修改 

 list[0] = 200;

 6 清空集合方法

 list.Clear();

  7 排序

list.Sort();

 8 indexOf() 获取元素的索引值 不存在为-1

 Console.WriteLine(list.IndexOf(200));

总结

Array 静态数组
             * ArrayList 动态数组
             * List 集合
             * 1.Array是容量是固定的,但是 ArrayList容量可根据需要自动扩充。修改 删除 插入等操作
             * 2.Array可以是多个维度,但是 ArrayList只具有一个维度
             * 3.在大多数情况下List类执行的更好并且比ArrayList更安全,不用向ArrayList进行拆箱装箱操作 (就是类型转换操作,对象类型和基本数据类型转换操作)

### 如何在C#中将按钮控件添加到数组C#中,可以通过创建一个 `Button` 类型的数组并将各个按钮实例赋值给数组中的元素来实现将按钮控件存储到数组的功能。以下是具体的操作方式: #### 创建并初始化按钮数组 可以先定义一个 `Button[]` 数组用于保存多个按钮对象。随后,在循环或其他逻辑结构中动态生成按钮,并将其逐一加入数组。 ```csharp // 定义一个大小固定的 Button 数组 System.Windows.Forms.Button[] buttonArray = new System.Windows.Forms.Button[5]; for (int i = 0; i < buttonArray.Length; i++) { // 动态创建一个新的按钮实例 buttonArray[i] = new System.Windows.Forms.Button(); // 设置按钮的一些基本属性 buttonArray[i].Text = "Button " + (i + 1).ToString(); buttonArray[i].Top = i * 30; buttonArray[i].Left = 10; // 将按钮添加到窗体的控件集合中以便显示 HostForm.Controls.Add(buttonArray[i]); } ``` 以上代码片段展示了如何通过循环创建五个按钮,并将它们依次存入 `buttonArray` 中[^1]。每个按钮都设置了不同的位置 (`Top`) 和文本内容 (`Text`) 来区分彼此。 #### 使用 List<T> 替代固定长度数组 如果不确定需要多少个按钮或者希望更灵活地管理这些按钮,则可以考虑使用泛型集合 `List<Button>` 而不是传统的数组形式。 ```csharp using System.Collections.Generic; // 初始化一个可变长度的按钮列表 List<System.Windows.Forms.Button> buttonList = new List<System.Windows.Forms.Button>(); // 循环添加按钮至列表 for (int i = 0; i < 5; i++) { var btn = new System.Windows.Forms.Button(); btn.Text = $"Button {i}"; btn.Top = i * 30; btn.Left = 10; HostForm.Controls.Add(btn); buttonList.Add(btn); } // 如果必要的话,还可以随时转换回数组形式 System.Windows.Forms.Button[] buttonsAsArray = buttonList.ToArray(); ``` 此部分利用了 `List<T>` 的灵活性特点[^1],允许开发者更加方便地增删其中的对象而无需担心容量不足等问题。 #### 关联事件处理器 当把按钮放入数组之后,通常还需要为每一个按钮绑定相应的点击事件处理函数。这一步骤同样可以在构建阶段完成。 ```csharp private void ClickHandler(object sender, EventArgs e) { MessageBox.Show(((System.Windows.Forms.Control)sender).Name + " was clicked!"); } foreach(var b in buttonArray){ b.Click += new EventHandler(ClickHandler); } ``` 这里演示了一个简单的消息框弹出操作作为响应动作[^3]。每当某个按钮被按下时都会调用指定的方法并向用户反馈信息。 综上所述,无论是采用静态声明还是借助于高级数据结构如列表等方式都能够轻松达成目标——即将一系列自动生成出来的按钮组件妥善安排进容器之内供后续进一步操控之需。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值