using System;
using System.Collections;
using System.Collections.Generic;


namespace 数据结构处理
{
class Program
{
static void ArrayListOperation()//动态数组操作
{
//它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,
//动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。
ArrayList arrayList = new ArrayList();
arrayList.Add(1);
}
static void ListOperation()
{
//泛型的好处:
//它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。
//不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,性能得到提高。
List<int> lst = new List<int>(20);
lst.Add(32);
var num = lst.Count;
Console.WriteLine(num);
lst.RemoveAt(0);
Console.WriteLine(lst.Count);
}
static void SortedListOperation()//有序的键值对集合,内部存储用数组存储
{
SortedList<int,string> lst = new SortedList<int,string>();
lst.Add(3,"逆战");
lst.Add(1, "王牌");
foreach(var item in lst)
{
Console.WriteLine(item);
}
}
static void LinkedListOperation()//双向链表 里面每个元素都是一个LinkedListNode
{
LinkedList<string> listlink = new LinkedList<string>();
LinkedListNode<string> mode1 = new LinkedListNode<string>("张三");
listlink.AddFirst(mode1);
LinkedListNode<string> mode2 = new LinkedListNode<string>("李四");
listlink.AddAfter(mode1, mode2);
foreach(var item in listlink)
{
Console.WriteLine(item);
}
}
static void StackOperation()
{
Stack<int> stack = new Stack<int>();
stack.Push(78);
Console.WriteLine(stack.Peek());
}

static void QueueOperation()
{
Queue<char> q = new Queue<char>();
q.Enqueue('a');
q.Enqueue('b');
Console.WriteLine(q.Peek());//先
// Console.WriteLine(q.Dequeue());
// Console.WriteLine("剩下的是");
//; Console.WriteLine(q.Peek());
}

static void DictionaryOperation()
{ //值可以重复,键都必须是唯一的,键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值

Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(11, "孙悟空");
dict.Add(2, "李白");
foreach (var item in dict)
{
Console.WriteLine(item);
}
}
static void SortedDictionaryOperation()
{ //值可以重复,键都必须是唯一的,键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值

SortedDictionary<int, string> dict = new SortedDictionary<int, string>();
dict.Add(11, "孙悟空");
dict.Add(2, "李白");
foreach(var item in dict)
{
Console.WriteLine(item);
}
}
static void Main(string[] args)
{
SortedListOperation();
}
}
}

更多参考资料:
​​​c#常用数据结构解析​

​​​C#数据结构入门(动态数组、泛型列表、字典、栈、队列、双向链表)​