- 数组
- 【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