• 数组
  • 【1】数组初始化填充
  • 【2】二维数组排序
  • 【3】 Array
  • 【*】 创建一个m x n的二维数组
  • 列表(List)
  • 【1】拼接
  • 【2】 排序
  • 【3】 类型转换
  • 链表
  • 字典
  • 【1】 常用方法
  • 【2】 字典排序
  • 堆栈
  • 【1】 常用方法
  • 队列
  • 【1】 常用方法
  • 转换


数组

【1】数组初始化填充
int[] dist = new int[10];
 Array.Fill(dist, 1); //填充数组

int[,] Ar = new int[n,n]; //二维
bool[] bl = new bool[10]; //bool数组默认 全为 false
【2】二维数组排序
int[][] nums= new int[][] { new int[]{ 0, 8 }, new int[]{ 2, 4 } };

Array.Sort(nums, (x, y) => x[0].CompareTo(y[0])); //按每个一维数组的 第一个元素排序(0)
Array.Sort(nums, (a, b) => a[0] - b[0]);   
Array.Sort(nums, (a, b) => { return p1[0] - p2[0]; });
【3】 Array
Array.IndexOF(int[] arr, int i); //返回arr数组中从0开始第一个匹配元素i的下标;没有则返回-1
Array.LastIndexOf(int[] arr, int i); //返回arr数组中从0开始最后一个匹配元素i的下标;没有则返回-1

Array.Sort(object); //数组升序排列
Array.Reverse(object);//数组降序排列
Array.Sort(object,2,4);//从索引为2的元素开始的4个元素进行升序   (数组,索引,操作的元素个数)
Array.Reverse(object,2,3);//对索引为2的元素开始的3个元素进行反转
Array.Copy(sourceArray,destinationArray,length); //从sourceArray数组第一个元素开始复制length长度到destinationArray(也从第一个元素开始粘贴)
Array.Copy(sourceArray,sourceIndex,destinationArray,destinationIndex,length)//懂得都懂
【*】 创建一个m x n的二维数组
/// <summary>
///  int[][]  1、数组的数组,元素为数组 2、各元素数组的 元素个数可以不一样 3、只能是二维数组
/// </summary>
int[][] ans = new int[m][];
for (int i = 0; i < m; ++i) {
	ans[i] = new int[n];
}
/// <summary>
/// int[,]  1、一个逗号的表示二维,多逗号可表示多维 2、每个元素数组的个数(维度)必须一致
/// </summary>
int[,] ans =  new int[m,n];

列表(List)

【1】拼接
Lista.AddRange(Listb); // 将b集合 添加到a集合后
【2】 排序
List<int> list = new List<int>();
list.Sort();// 升序排序
list.Reverse();// 降序
//lambda表达式排序
list.Sort((x, y) => x.CompareTo(y));//升序
list.Sort((x, y) => -x.CompareTo(y));//降序
【3】 类型转换
string[] st =  list.ToArray(); //List 转 数组

链表

字典

【1】 常用方法
Dictionary<int, int> dic = new Dictionary<int, int>();
dic.Add(1,2);//添加键值对
dic.Remove(1)//删除Key = 1的键值对
dic.ContainsKey(1);//是否存在Key=1的元素
dic.ContainsValue(2);//是否存在Value=2的元素
dic.Count()//键值对数量
dic.First(); //首元素(键值对)
dic.Last();	 //尾元素(键值对)
【2】 字典排序
Dictionary<char, int> dic = new Dictionary<char, int>();
//按Key升序
Dictionary<char, int> dicsort1 = dic.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
//按Key降序
Dictionary<char, int> dicsort2 = dic.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
//按Value升序
Dictionary<char, int> dicsort3 = dic.OrderBy(o => o.Value).ToDictionary(o => o.Key, p =>p.Value);
//按Value降序
Dictionary<char, int> dicsort4 = dic.OrderByDescending(o => o.Value).ToDictionary(o => o.Key, p => p.Value);

堆栈

【1】 常用方法
Stack<object>  stack = new Stack<object>(); //先进后出
stack.Peek(); //返回在 Stack 的顶部的对象,但不移除它。
stack.Pop(); //移除并返回在 Stack 的顶部的对象。
stack.Push( object obj ); //向 Stack 的顶部添加一个对象。
stack.Clear(); //从 Stack 中移除所有的元素。

队列

【1】 常用方法
Queue<object>  queue= new Queue<object>(); //先进先出
queue.Peek(); //返回在 Queue的队首的对象,但不移除它。 
queue.Dequeue(); //移除并返回在 Queue的队首的对象。队列无对象则会抛异常
queue.Enqueue( object obj ); //向 Queue的队末尾 添加一个对象。
queue.Clear(); //从 Queue中移除所有的元素。

转换

char[] ch= s.ToCharArray(); // string 转 char[]
new string(ch); // char[] 转 string