栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C# 容器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C# 容器

C# 容器
  • 一、List<>
  • 二、LinkedList<>
  • 三、Dictionary<>
  • 四、HashTable
  • 五、Queue
  • 六、Stack
  • 七、HashSet<>

一、List<>

泛型容器,与C++的vector类似,是顺序结构而不是链式结构。

//声明一个List泛型集合的变量listNew
List listNew=new List();
1.Add()方法,添加元素的方法
2.Clear()方法,无返回值,清空集合中的所有元素
3.Contains()方法,返回布尔型数据,参数为集合中元素的数据类型
4.Equals()方法
5.Indexof()返回值为int,从索引位置0开始查找元素,并得到索引值
6.Insert()方法,插入元素
listNew.Insert(3,"三点五号元素");
7.Remove()方法,删除指定元素
8.RemoveAt()方法,根据索引位置删除元素
9.Reserve()方法,将集合中的所有元素反向排序
10.ToArray()方法,将集合转换为数组
二、LinkedList<>

C#中的泛型链表,与C++的list类似,是链式结构。

LinkedList months = new LinkedList();
         months.AddLast("March");
         months.AddFirst("January");
 
         var march = months.Find("March");
 
         months.AddBefore(march, "February");
         months.AddAfter(march, "April");
三、Dictionary<>

C#的泛型hash表

//定义
    Dictionary openWith = new Dictionary();
//添加元素
    openWith.Add("txt", "notepad.exe");
//取值
    Console.WriteLine("For key = "rtf", value = {0}.", openWith["rtf"]);
//更改值
    openWith["rtf"] = "winword.exe";
//遍历key
    foreach (string key in openWith.Keys)
    {
        Console.WriteLine("Key = {0}", key);
    }
//遍历字典
    foreach (KeyValuePair kvp in openWith)
    {
        Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
    }
//删除元素
    openWith.Remove("doc");
常用属性

    名称    说明
    Comparer     获取用于确定字典中的键是否相等的 IEqualityComparer。
    Count        获取包含在 Dictionary 中的键/值对的数目。
    Item         获取或设置与指定的键相关联的值。
    Keys         获取包含 Dictionary 中的键的集合。
    Values       获取包含 Dictionary 中的值的集合。

常用方法
    名称    说明
    Add                 将指定的键和值添加到字典中。
    Clear               从 Dictionary 中移除所有的键和值。
    ContainsKey         确定 Dictionary 是否包含指定的键。
    ContainsValue       确定 Dictionary 是否包含特定值。
    Equals(Object)      确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
    Finalize            允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
    GetEnumerator       返回循环访问 Dictionary 的枚举器。
    GetHashCode         用作特定类型的哈希函数。 (继承自 Object。)
    GetObjectData       实现 System.Runtime.Serialization.ISerializable 接口,并返回序列化 Dictionary 实例所需的数据。
    GetType             获取当前实例的 Type。 (继承自 Object。)
    MemberwiseClone     创建当前 Object 的浅表副本。 (继承自 Object。)
    OnDeserialization    实现 System.Runtime.Serialization.ISerializable 接口,并在完成反序列化之后引发反序列化事件。
    Remove              从 Dictionary 中移除所指定的键的值。
    ToString            返回表示当前对象的字符串。 (继承自 Object。)
    TryGetValue         获取与指定的键相关联的值。
四、HashTable

C#的hash表,但键值对都是object类型,需要装箱和拆箱。利用Hashtable.Synchronized(Hashtable table)可使多线程安全。

五、Queue

C#的队列,可使用泛型也可以不使用。不使用泛型时,可利用Queue.Synchronized(new Queue())使多线程安全。

 Enqueue():在队列的末端添加元素

  Dequeue():在队列的头部读取和删除一个元素,注意,这里读取元素的同时也删除了这个元素。如果队列中不再有任何元素。就抛出异常

  Peek():在队列的头读取一个元素,但是不删除它

  Count:返回队列中的元素个数

  TrimExcess():重新设置队列的容量,因为调用Dequeue方法读取删除元素后不会重新设置队列的容量。

  Contains():确定某个元素是否在队列中

  CopyTo():把元素队列复制到一个已有的数组中

  ToArray():返回一个包含元素的新数组
六、Stack

C#的栈,可使用泛型也可以不使用。不使用泛型时,可利用Stack .Synchronized(new Stack ())使多线程安全。

//定义
private Stack StaArray = new Stack();
//压栈
StaArray.Push("张三");
//查栈
StaArray.Peek()
//出栈
StaArray.Pop()
七、HashSet<>

C#的hash集,是泛型,非线性结构.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号