C# 学习记录 集合篇

ArrayList类 (动态数组)

ArrayList类 位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看 做扩充了功能的数组,但它并不等同于数组

构造方法

ArrayList() (默认空间大小为16位)

ArrayList(ICollection arrayName)

ArrayList(int length)

arrayName: 添加集合的数组名
**length: ** 指定的大小初始化

属性

属性说明
Capacity获取或设置 ArrayList 可包含的元素数。
Count获取 ArrayList中实际包含的元素数。
IsFixedSize获取一个值,该值指示 ArrayList 是否具有固定大小。
IsReadOnly获取一个值,用于指示 ArrayList是否为只读。
IsSynchronized获取一个值,该值指示是否同步对 ArrayList的访问(确保线程安全)。
Item获取或设置指定索引处的元素。
SyncRoot获取用于同步对 ArrayList的访问的对象。

常用方法

修饰符方法说明
intArrayList.Add(Object) 将一个对象添加到 ArrayList 的末尾
voidArrayList.Insert(Int32 , Object) 将元素插入到 ArrayList 中的指定索引处
voidArrayList.Clear() 从 ArrayList 中删除所有元素
voidArrayList.Remove(Object) 从 ArrayList 中删除特定对象的第一个匹配项
voidArrayList.RemoveAt(Int32) 移除 ArrayList 的指定索引处的元素
voidArrayList.RemoveRange(Int32, Int32)从 ArrayList 中移除一系列元素(前者为开始移除索引的位置,后者为要删除个数)
boolArrayList.Contains(Object) 查找对象是否存在,存在为true,否则为false
static void Main(string[] args)
{
    ArrayList array1 = new ArrayList();
    int[] n = new int[] {1,2,3,4,5,6 };
    ArrayList array2 = new ArrayList(n);
    ArrayList array3 = new ArrayList(20);

    //添加对象
    array1.Add(1);
    array1.Add(2);
    array3.Add("12");
    array3.Add("111");
    array3.Add("22");
    array3.Add("23");
    array3.Add("24");
    array1.Insert(1 , "2");

    //遍历他们
    Console.WriteLine("===========他们的长度为!");
    Console.WriteLine("array1:");
    foreach (Object tmp in array1){
        Console.Write(tmp+" ");
    }

    Console.WriteLine("\nrray2:");
    foreach (Object tmp in array2)
    {
        Console.Write(tmp + " ");
    }

    Console.WriteLine("\narray3:");
    foreach (Object tmp in array3)
    {
        Console.Write(tmp + " ");
    }

    //移除array1对象
    array1.Clear();

    //移除array3对象的数值12
    array2.Remove(12);

    //移除array2对象索引5的位置
    array2.RemoveAt(5);

    //移除array3对象前面数值4个字符
    array3.RemoveRange(0 , 4);

    //查找元素
    Console.Write("\n===========array2是否存在2?{0}", array2.Contains(2));

    //遍历他们
    Console.WriteLine("\n===========他们的长度为!");
    Console.WriteLine("array1:");
    foreach (Object tmp in array1)
    {
        Console.Write(tmp + " ");
    }

    Console.WriteLine("\nrray2:");
    foreach (Object tmp in array2)
    {
        Console.Write(tmp + " ");
    }

    Console.WriteLine("\narray3:");
    foreach (Object tmp in array3)
    {
        Console.Write(tmp + " ");
    }

    Console.WriteLine("\nEND");
}

运行结果

===========他们的长度为!
array1:
1 2 2
rray2:
1 2 3 4 5 6
array3:
12 111 22 23 24
===========array2是否存在2?True
===========他们的长度为!
array1:

rray2:
1 2 3 4 5
array3:
24
END

Hashtable(哈希表)

Hashtable 用 键 / 值 来表示的集合,位于System.Collections命名空间下 , 这些 键 / 值 对根据键的哈希代码进行组织。每个元素都存储在DictionaryEntry对象中的 键 / 值 对。

构造方法

Hashtable()

Hashtable(int capacity)

capacity: Hashtable对象最初可包含的元素的近似数目

方法

修饰符方法说明
voidHashtable.Add(Object K, Object V) 添加 键 / 值 到Hashtable对象中(V可null)
voidHashtable.Clear() 移除所有元素
voidHashtable.Remove(Object K) 移除Hashtable对象中指定键的元素
boolHashtable.Contains(Object key) 判断Hashtable对象中指定键是否存在
boolHashtable.ContainsValue(Object value) 判断Hashtable对象中指定值是否存在(V可null)

遍历

Hashtable对象遍历需要到DictionaryEntry类型来进行。DictionaryEntry类型表示一个 键 / 值 对的集合
以下是使用例子

foreach(DictionaryEntry tmp in hashtable){//hashtable是Hashtable对象
    Console.WriteLine(tmp.Key+"\t"+tmp.Value);
}

例子:

static void Main(string[] args)
{
    Hashtable hash = new Hashtable();

    hash.Add(1 , "Tam");
    hash.Add(2 , "Sanscan12");
    hash.Add(3 , 223);
    hash.Add(4 , new Object());
    hash.Add(5 , true);

    //遍历元素
    Console.WriteLine("遍历元素\n============= ");
    foreach (DictionaryEntry tmp in hash)
    {//hash是Hashtable对象
        Console.WriteLine(tmp.Key + "\t" + tmp.Value);
    }
    Console.WriteLine("============= \n");

    //移除指定元素 通过K
    hash.Remove(1);
    Console.WriteLine("移除键 `1` ");

    //判断键的存在
    Console.WriteLine("键 `3` 是否存在?"+hash.Contains(3));

    //判断值的存在
    Console.WriteLine("值 `2223` 是否存在?"+hash.ContainsValue(2223));

    //遍历元素
    Console.WriteLine("\n遍历元素\n============= ");
    foreach (DictionaryEntry tmp in hash)
    {//hash是Hashtable对象
        Console.WriteLine(tmp.Key + "\t" + tmp.Value);
    }
    Console.WriteLine("============= ");


    hash.Clear();
    Console.WriteLine("移除所有元素");


    //遍历元素
    Console.WriteLine("\n遍历元素\n============= ");
    foreach (DictionaryEntry tmp in hash)
    {//hash是Hashtable对象
        Console.WriteLine(tmp.Key + "\t" + tmp.Value);
    }
    Console.WriteLine("============= ");
}

运行结果

遍历元素
=============
5       True
4       System.Object
3       223
2       Sanscan12
1       Tam
=============

移除键 `1`
键 `3` 是否存在?True
值 `2223` 是否存在?False

遍历元素
=============
5       True
4       System.Object
3       223
2       Sanscan12
=============
移除所有元素

遍历元素
=============
=============
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值