C#两个特殊的集合类StringCollection与StringDictionary
1、前言
为啥要写StringCollection与StringDictionary这两个集合呢?这两个集合都可以存储字符串的数据结构,都是非泛型的可以存储任何类型的数据,都是使用数组存储元素,因此使用他们效率更高。
2、简介
首先介绍一下这两者:
StringCollection 是一个字符串数组,存储了多个字符串,但没有键值对的关系。它是一种有序的字符串数组,通过索引访问字符串,并可以通过 Add 方法将字符串添加到数组中。StringCollection可以认为是类似于 List<String> 或者string[] 数组。
StringDictionary 是一种存储字符串键值对的字典。它存储了字符串的键和对应的值,并可以通过键访问字符串。它也是有序的,并且支持增加,修改和删除字符串键值对。StringDictionary 可以认为是类似于 Dictionary<string, string> 的键值对集合。
3、两者比较:
StringCollection 是一个字符串数组,可以存储多个字符串,但是没有键值对关系。
StringDictionary 是一个字符串键值对的字典,每个字符串都有一个唯一的键,可以通过键查询对应的值。
类别 | 是否区分大小写 | 是否允许键值重复 | 访问方式 |
StringCollection | True | True | 通过索引Index来访问 |
StringDictionary | False | False | 通过键key来访问 |
4、使用示例
StringCollection继承自 CollectionBase 类。下面是使用 StringCollection 的一个简单示例:
using System.Collections; using System; using System.Collections.Specialized; class Program { static void Main(string[] args) { StringCollection stringCollection = new StringCollection(); // 向集合中添加字符串 stringCollection.Add("刘备"); stringCollection.Add("关羽"); stringCollection.Add("张飞"); //插入集合 stringCollection.Insert(3,"赵云"); stringCollection.AddRange(new string[] { "公众号", "dotnet开发跳槽", "欢迎关注" }); //移除数据 stringCollection.Remove("赵云"); // 使用 foreach 循环遍历集合中的字符串 foreach (string s in stringCollection) { Console.WriteLine(s); } Console.ReadLine(); } } //输出结果: //刘备 关羽 张飞 公众号 dotnet开发跳槽 欢迎关注 //其中赵云增加了又删除了
StringDictionary 继承自 DictionaryBase 类。下面是使用 StringDictionary 的一个简单示例:
using System.Collections; using System; using System.Collections.Specialized; class Program { static void Main(string[] args) { StringDictionary stringDictionary = new StringDictionary(); // 向字典中添加键/值对 stringDictionary.Add("Key1", "刘备");//方式1 stringDictionary["Key2"] = "关羽";//方式2 stringDictionary.Add("Key3", "张飞"); stringDictionary.Add("Key4", "赵云"); // 获取字典中的某个值 Console.WriteLine(stringDictionary["Key4"]); //移除 stringDictionary.Remove("Key4"); // 使用 foreach 循环遍历字典中的键/值对 foreach (DictionaryEntry entry in stringDictionary) { Console.WriteLine("键: {0}, 值: {1}", entry.Key, entry.Value); } Console.ReadLine(); } } // 赵云 // 键: key1, 值: 刘备 // 键: key3, 值: 张飞 // 键: key2, 值: 关羽
以上是使用案例,仅供参考,具体根据项目情况使用。
5、使用场景
写了这么多,那么它们的使用场景是什么呢?如下
StringCollection
适用于存储一组无需额外关联信息的字符串,比如文件路径列表,文件名列表等。
StringDictionary
适用于存储键值对的字符串,比如用户名与密码,错误代码与错误消息等。
具体根据项目情况选择使用。
6、结语
本文介绍了c#两个特色集合类StringCollection与StringDictionary以及他们的异同、使用案例和使用场景。希望本文让你有所收获,同时欢迎留言吐槽。
相关文章
- ASP.NET中使用App_Code文件夹的异常
- 为什么 .NET 会被叫做 .NET?
- ASP.NET性能优化之负载均衡
- WinForm设置用户控件的按钮事件
- 分享一个简单的Visual Studio插件及源码
- ASP.NET 视图引擎攻略
- JavaMe开发:也说MVC设计模式
- WCF中几个基本知识点整理
- ASP.NET页面传递值的方式
- ASP.NET基于XML导航栏的制作
- 在.NET平台上使用Scala语言(下):分析
- 浅谈.NET独有精巧泛型设计模式
- WCF中几个容易忽略的知识点
- ASP.NET利用存储过程实现分页
- WCF中的异步实现
- C#实现平衡多路查找树(B树)
- 详细解读ASP.NET的异步
- 8个最棒的.NET开发相关工具
- Visual Studio大幅提高效率插件Autocode
- Mono 2.11.0发布 跨平台.NET运行环境