集合类Array List HashTable实例操作练习
2024-07-10 12:46:21
供稿:网友
集合常用操作添加、遍历、移除
命名空间System.Collections
ArrayList 可变长度数组,使用类似于数组
属性 Capacity Count
方法
Add() AddRange() Remove() RemoveAt() Clear()
Contains() ToArray()
Hashtable 键值对(KeyValuePair)的集合,类似于字典
a、ArrayList对值类型的操作
代码如下:
using System;
using System.Collections;
namespace _08_ArrayList {
//ArayList对值类型的操作
class Program {
static void Main( string[] args) {
//ArrayList与数组没多大的区别 优点在于不像数组需规定长度 缺点是数据类型不限制 什么类型数据都可以放入 这样会出现许多错误
ArrayList arylist = new ArrayList();
//ArrayList添加
arylist.Add(1000);
//arylist.Add("张三");//参数类型为object 所以可以添加多种类型的参数 取出时同样需要类型转换
arylist.Add(3000);
arylist.Add(4000); //发生装箱操作 将值类型转换引用类型
arylist.Add(5000);
int [] arr = { 1, 2, 3, 4 };
arylist.AddRange(arr); //AddRange参数是实现了ICollections接口的对象 可以一次性添加数组、array、ArrayList等实现接口的对象
//集合中元素个数 使用Count = 数组Length
Console .WriteLine("集合内容长度" + arylist.Count);
//Capacity为集合的容量 是可变的 一般*2增长
Console .WriteLine(arylist.Capacity);
//访问集合第一个元素
int firstlist = Convert .ToInt32(arylist[0]);
Console .WriteLine(firstlist.ToString());
//ArrayList遍历
int sum2 = 0;
for (int i = 0; i < arylist.Count; i++) {
//sum2 += Convert.ToInt32(arylist[i]);//发生拆箱操作
Console .WriteLine(arylist[i].ToString());
}
foreach (object item in arylist) {
sum2 += Convert .ToInt32(item);
}
Console .WriteLine(sum2);
//ArrayList移除 只是移除 不是删除
arylist.Remove(1000); //移除内容是1000的 Remove移除内部的某个对象
arylist.RemoveAt(1); //移除第二项 按索引移除
//注意 移除元素 ArrayList数组会重新分配索引 所以移除操作最好是倒叙移除元素
//如果移除所有的元素 直接使用Clear
//arylist.Clear();
if (arylist.Contains(3000)) {
Console .WriteLine("包含" );
}
//ArrayList还有ToArray()但是意义不大
//这里是在ArrayList中添加值类型 那么引用类型呢????添加Student类的对象?
Console .Read();
}
}
}
b、ArrayList对引用类型的操作
代码如下:
using System;
using System.Collections;
namespace _09_ArrayListObject {
//ArrayList对引用类型的操作
class Student {
public Student(string name, int age) {
this .name = name;
this .age = age;
}
private string name;
public string Name {
get {
return name;
}
set {
name = value ;
}
}
private int age;
public int Age {
get {
return age;
}
set {
age = value ;