C#中的集合
2022/1/26 22:34:20
本文主要是介绍C#中的集合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C#中有很多集合类型,比如List<T>,Dictionary<TKey,TValue>,这些是我们常用的,但也有一些少众的场合使用的集合:特征类型的ReadOnly集合,Sort集合;封装特定算法类型的集合:Queue<T>(先进先出),Stack<T>(后进先出),LinkedList<T>(链表,每个元素承上启下);这些集合都是在特定的场合下使用,因为他们的特性限制了他的使用场景。
/// <summary> /// 只读List /// </summary> static void ReadOnlyListTest() { IReadOnlyList<string> readOnlyList = new List<string>() { "a", "b", "c" }; foreach (var item in readOnlyList) { Console.WriteLine(item); } /*输出结果 a b c */ } /// <summary> /// 只读字典 /// </summary> static void ReadOnlyDictionaryTest() { var readOnlyDictionary = new ReadOnlyDictionary<int, string>( new Dictionary<int, string> { {5,"五"}, {1,"一"}, {10, "十"} }); foreach (var item in readOnlyDictionary) { Console.WriteLine($"{item.Key}~{item.Value}"); } /*输出结果 5~五 1~一 10~十 */ }
/// <summary> /// 排序列表 /// </summary> static void SortListTest() { var sortList = new SortedList<int, string>(); sortList.Add(10, "十"); sortList.Add(5, "五"); sortList.Add(1, "一"); Console.WriteLine(sortList.Keys); foreach (var item in sortList) { Console.WriteLine($"{item.Key}~{item.Value}"); } /*输出结果 1~一 5~五 10~十 */ } /// <summary> /// 排序字典 /// </summary> static void SortDictionaryTest() { var sortDic = new SortedDictionary<int, string>(); sortDic.Add(10, "十"); sortDic.Add(5, "五"); sortDic.Add(1, "一"); Console.WriteLine(sortDic.Keys); foreach (var item in sortDic) { Console.WriteLine($"{item.Key}~{item.Value}"); } /*输出结果 1~一 5~五 10~十 */ } /// <summary> /// 排序set,不含重复值 /// </summary> static void SortSetTest() { var sortSet = new SortedSet<int>(); sortSet.Add(10); sortSet.Add(5); sortSet.Add(1); sortSet.Add(1); foreach (var item in sortSet) { Console.WriteLine(item); } /*输出结果 1 5 10 */ }
/// <summary> /// 链表:每个元素承上启下 /// </summary> static void LinkedListTest() { var linkedList = new LinkedList<string>(); linkedList.AddLast("2"); linkedList.AddLast("3"); linkedList.AddLast("5"); linkedList.AddFirst("1"); linkedList.AddBefore(linkedList.Find("5"), "4"); foreach (var item in linkedList) { Console.WriteLine(item); } Console.WriteLine($"2前面的值:{linkedList.Find("2").Previous.Value}"); Console.WriteLine($"2后面的值:{linkedList.Find("2").Next.Value}"); /*输出结果 1 2 3 4 5 2前面的值:1 2后面的值:3 */ } /// <summary> /// 哈希集合 /// </summary> static void HashSetTest() { var hashSet = new HashSet<string>(); hashSet.Add("a"); hashSet.Add("c"); hashSet.Add("b"); hashSet.Add("a"); hashSet.Add("c"); hashSet.Add("b"); foreach (var item in hashSet) { Console.WriteLine(item); } /*输出结果 a b c */ } /// <summary> /// 队列:先进先出 /// </summary> static void QueueTest() { var queue = new Queue<int>(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(3); foreach (var item in queue) { Console.WriteLine(item); } Console.WriteLine($"dequeue元素:{queue.Dequeue()}"); /*输出结果 1 2 3 dequeue元素:1 */ } /// <summary> /// 堆栈:后进先出 /// </summary> static void StackTest() { var stack = new Stack<int>(); stack.Push(1); stack.Push(2); stack.Push(3); foreach (var item in stack) { Console.WriteLine(item); } //pop元素 Console.WriteLine($"pop元素:{stack.Pop()}"); /*输出结果 3 2 1 pop元素:3 */ }
想要更快更方便的了解相关知识,可以关注微信公众号
这篇关于C#中的集合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#