翼度科技»论坛 编程开发 .net 查看内容

C#两个特殊的集合类StringCollection与StringDictionary

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
1、前言 
   为啥要写StringCollection与StringDictionary这两个集合呢?这两个集合都可以存储字符串的数据结构,都是非泛型的可以存储任何类型的数据,都是使用数组存储元素,因此使用他们效率更高。
 
2、简介
首先介绍一下这两者:
StringCollection 是一个字符串数组,存储了多个字符串,但没有键值对的关系。它是一种有序的字符串数组,通过索引访问字符串,并可以通过 Add 方法将字符串添加到数组中。StringCollection可以认为是类似于 List 或者string[] 数组。
StringDictionary 是一种存储字符串键值对的字典。它存储了字符串的键和对应的值,并可以通过键访问字符串。它也是有序的,并且支持增加,修改和删除字符串键值对。StringDictionary 可以认为是类似于 Dictionary 的键值对集合。
 
3、两者比较:

StringCollection 是一个字符串数组,可以存储多个字符串,但是没有键值对关系。
StringDictionary 是一个字符串键值对的字典,每个字符串都有一个唯一的键,可以通过键查询对应的值。
 
类别是否区分大小写是否允许键值重复访问方式
StringCollection TrueTrue通过索引Index来访问
StringDictionaryFalseFalse通过键key来访问
 
4、使用示例
StringCollection继承自 CollectionBase 类。下面是使用 StringCollection 的一个简单示例:
  1. using System.Collections;
  2. using System;
  3. using System.Collections.Specialized;
  4. class Program
  5. {
  6.     static void Main(string[] args)
  7.     {
  8.         StringCollection stringCollection = new StringCollection();
  9.         // 向集合中添加字符串
  10.         stringCollection.Add("刘备");
  11.         stringCollection.Add("关羽");
  12.         stringCollection.Add("张飞");
  13.         //插入集合
  14.         stringCollection.Insert(3,"赵云");
  15.         stringCollection.AddRange(new string[] { "公众号", "dotnet开发跳槽", "欢迎关注" });
  16.         //移除数据
  17.         stringCollection.Remove("赵云");
  18.         // 使用 foreach 循环遍历集合中的字符串
  19.         foreach (string s in stringCollection)
  20.         {
  21.             Console.WriteLine(s);
  22.         }
  23.         Console.ReadLine();
  24.     }
  25. }
  26. //输出结果:
  27. //刘备 关羽 张飞 公众号 dotnet开发跳槽  欢迎关注
  28. //其中赵云增加了又删除了
复制代码
  1.  
复制代码
StringDictionary 继承自 DictionaryBase 类。下面是使用 StringDictionary 的一个简单示例:
  1. using System.Collections;
  2. using System;
  3. using System.Collections.Specialized;
  4. class Program
  5. {
  6.     static void Main(string[] args)
  7.     {
  8.         StringDictionary stringDictionary = new StringDictionary();
  9.         // 向字典中添加键/值对
  10.         stringDictionary.Add("Key1", "刘备");//方式1
  11.         stringDictionary["Key2"] = "关羽";//方式2
  12.         stringDictionary.Add("Key3", "张飞");
  13.         stringDictionary.Add("Key4", "赵云");
  14.         // 获取字典中的某个值
  15.         Console.WriteLine(stringDictionary["Key4"]);
  16.         //移除
  17.         stringDictionary.Remove("Key4");
  18.         // 使用 foreach 循环遍历字典中的键/值对
  19.         foreach (DictionaryEntry entry in stringDictionary)
  20.         {
  21.             Console.WriteLine("键: {0}, 值: {1}", entry.Key, entry.Value);
  22.         }
  23.         Console.ReadLine();
  24.     }
  25. }
  26. // 赵云
  27. // 键: key1, 值: 刘备
  28. // 键: key3, 值: 张飞
  29. // 键: key2, 值: 关羽
复制代码
以上是使用案例,仅供参考,具体根据项目情况使用。
 
5、使用场景
 
写了这么多,那么它们的使用场景是什么呢?如下
StringCollection
适用于存储一组无需额外关联信息的字符串,比如文件路径列表,文件名列表等。
StringDictionary
适用于存储键值对的字符串,比如用户名与密码,错误代码与错误消息等。
具体根据项目情况选择使用。
 
6、结语
    本文介绍了c#两个特色集合类StringCollection与StringDictionary以及他们的异同、使用案例和使用场景。希望本文让你有所收获,同时欢迎留言吐槽。

来源:https://www.cnblogs.com/xbhp/archive/2023/02/19/17134084.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具