
C#
文章平均质量分 76
HadesNyx
面死而生,三思而行!
展开
-
笔记:C#_数据结构_1_集合:源起
集合:简明指南引导精通事物的过程,其实是从简单到复杂的掌控过程。学习路径了解到这个顺序,那么来一个升级打怪的路线图,一路轻松愉快的小跑前进。参考系:巨人蹲下,我踩踩!升级路线图Lv1 IEnumerableLv2 ICollectionLv3 IListLv4 Listmemo:等级越 低 内容和功能越 简单 性能越高;等级越 高 内容和功能越 复杂 性能越低;航海图:集合:简明指南public interface IEnumerable<out T> :原创 2020-07-12 18:08:05 · 379 阅读 · 1 评论 -
笔记:C#_数据结构_2_集合:造船厂
C# 集合(Collection)V1.0 : 扬帆起航航海图C# 集合(Collection)V1.0 : 扬帆起航数据结构:起始港口数组:起始帆船集合:主港常用集合 清单:船坞 (造船厂)参照:泰坦的肩膀数据结构:起始港口数据结构是 计算机存储、组织、管理数据的方式。是 指相互之间存在 一种或多种 特定关系的数据元素的 集合。数组:起始帆船数组第一个 可以管理 多个数据 的 容器。对于系统预定义类型中,都是针对单个数据。通过数组,可定义一个容器,来管理特.原创 2020-07-11 20:33:40 · 753 阅读 · 0 评论 -
笔记:C#_OOP_1_入门:基本剑术
OOP:概念清单Concept List序:导言江湖术士要想练就绝世武功,就要坚持不懈的修炼基本功。能走多远,全看基本功有多扎实。剑术谈起剑术,为什么如此多人喜爱用剑?我想在于它的灵活性。其实也就是范式,能够应对各种兵器,而本身又轻灵,自然是不二之选。基本剑术其实就是基本的通用术语。保证在研读该类术语写成的剑谱时,能够行云流水。宗门要学正宗的剑术,当然要去宗门。拜山帖:【MSDN】 拿走不谢!鸶 霞 派C #:See Sharp..原创 2020-07-25 07:46:57 · 221 阅读 · 0 评论 -
笔记:C#_数据结构_集合_接口:继承关系
集合接口:继承关系导图集合接口:继承关系接口:继承路径泛型接口:继承关系接口:继承路径LvInterface1IEnumerable2ICollection3IList4ListIEnumerableICollectionIListListmemo:这个图看似复杂,但我们只需要关注层级关系即可。等级越 低 内容和功能越 简单 ,性能越高;等级越 高 内容和功能越 复杂 ,性能越低;泛型简介泛型<T>:泛型是很大原创 2020-07-24 07:31:04 · 460 阅读 · 1 评论 -
笔记:C#_数据结构_List_问题:获取重复值的索引
起因由于List在查询中,效率是比较高的。之所以选择List还有一个原因,那就是他允许重复值。一些场景必然会出现重复值,因此List也就作为不二之选。问题描述:但在查询的时候遇到一个问题,由于List中间存在重复元素,但使用foreach却无法通过遍历获取到每个重复元素的索引。解决思路:我无法是想在找到一个匹配元素时,返回一个数字即可。那我何不在遍历的时候,再维护一个int类的数字呢,实现与List同步增长,不就相当于得到索引了吗?!List<string> Target.原创 2020-07-23 07:54:49 · 1047 阅读 · 0 评论 -
笔记:C#_数据结构_性能对比:List、LinkedList、Dictionary
Created with Raphaël 2.2.0开始array 数组arraylist 动态数组list 列表queue 队列stack 堆栈linkedlist 链表hashtable 哈希表dictionary 字典hashset 哈希集sortedset 排序集结束1.1 ArrayListArrayList是一个特殊数组,通过添加和删除元素就可以动态改变数组的长度。ArrayList集合相对于数组的优点:支持自动改变大小,可以灵活的插入元素,可以灵活的删除元素,可以灵活的访原创 2020-07-20 20:38:02 · 4856 阅读 · 2 评论 -
笔记:C#_数据结构_串存储结构:字符串
简介:串存储结构(newLine)码头:副官:船长,接下来我们上船出海,探索一下这片海域,开拓一条新航线吧!参考手册:字符串扬帆启航码头上岸 简介:串存储结构(newLine)码头:海域等级 Lv1:浅水湾海域等级 Lv2:深水湾海域等级 Lv3:浅海域海域等级 Lv4:深海域恭喜:新航线建立海域等级 Lv1:浅水湾任务:我们在这里只需要初步了解到线性表的概念即可一星任务:☆ 初步了解到线性表的概念线性表是最基本、最简单、也是原创 2020-07-20 06:31:02 · 435 阅读 · 0 评论 -
笔记:C#_数据结构_线性表:专精航线
简介:线性表(linear list)码头:副官:船长,接下来我们上船出海,探索一下这片海域,开拓一条新航线吧!扬帆启航离开码头 简介:线性表(linear list)码头:海域等级 Lv1:浅水湾海域等级 Lv2:深水湾海域等级 Lv3:浅海域海域等级 Lv4:深海域海域等级 Lv1:浅水湾任务:我们在这里只需要初步了解到线性表的概念即可一星任务:☆ 初步了解到线性表的概念线性表是最基本、最简单、也是最常用的一种数据结构。优点原创 2020-07-18 10:32:25 · 230 阅读 · 0 评论 -
笔记:C#_数据结构_3_主港:Styx
导航招牌工程项目:施工中...预留地:规划中...导航:底部招牌工程项目:施工中…预留地:规划中…导航:底部To Top原创 2020-07-17 11:00:25 · 265 阅读 · 0 评论 -
笔记:C#_数据结构_导言:入口
我来这做什么?导言想必大家都听过,数据 就是石油 这样的说法。石油有多重要,不言而喻。我把承载数据的容器称为数据体。可以说,世间万物皆是数据体。有了DNA的记录表达,才有了生物,随着数据的积累,出现了人。人反观世界,原来一切都在进化当中,唯一不变的就是数据消失的那天即是末日,正如三体中的 死神永生。数据由能量维持,没有能量的维持,数据就开始崩塌,变得混沌,该数据体的末日降临。如果你能看懂这一层,你就知道再怎么强调数据的重要性也不为过,因为 数据就是一切!数据结构 如何诞生?数据存原创 2020-07-16 10:43:53 · 186 阅读 · 0 评论 -
笔记:C#_数据结构_集合_有序集:SortedSet
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-15 12:47:57 · 1845 阅读 · 0 评论 -
笔记:C#_数据结构_集合_哈希集:HashSet
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-15 11:49:06 · 528 阅读 · 0 评论 -
笔记:C#_数据结构_集合_排序对比:Sorted
SortedDictionary vs SortedList这两个类具有相似的对象模型,并且都具有 O(log n) 的检索运算复杂度。这两个类的区别在于内存的使用以及插入和移除元素的速度内存使用SortedList 使用的内存比 SortedDictionary 少。更新速度而 SortedDictionary 可对未排序的数据执行更快的插入和移除操作:它的时间复杂度为 O(log n),而SortedList 为 O(n)。Dictionary vs SortedDictionary:.原创 2020-07-15 09:43:42 · 226 阅读 · 0 评论 -
笔记:C#_数据结构_集合_排序字典:SortedDictionary
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-15 09:37:47 · 507 阅读 · 0 评论 -
笔记:C#_数据结构_集合_排序列表:SortedList
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-15 07:48:01 · 320 阅读 · 0 评论 -
笔记:C#_数据结构_集合_字典:Dictionary
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-15 06:58:37 · 321 阅读 · 0 评论 -
笔记:C#_数据结构_集合_哈希表:Hashtable
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈)原创 2020-07-14 23:14:24 · 330 阅读 · 0 评论 -
笔记:C#_数据结构_集合_堆栈:Stack
售船商堆栈:Stack★★提供后进先出的存储方式优势:添加速度快,允许重复短板:只能在一头操作数据,存取其他项很慢返回:船坞公告牌:堆栈(Stack)代表了一个后进先出的对象集合。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Stack类表示对象的后进先出集合,存储在 Stack(堆栈原创 2020-07-14 21:27:03 · 243 阅读 · 0 评论 -
笔记:C#_数据结构_集合_队列:Queue
售船商队列: Queue★★提供先进先出的存储方式优势:添加速度快,允许重复短板:只能在一头添加,另一头获取,存取其他项很慢返回:船坞公告牌:队列(Queue)代表了一个先进先出的对象集合。在列表中添加一项,称为入队。从列表中移除一项时,称为出队。 售船商操作指南定义属性方法方法详解:动态更新泰坦的肩膀操作指南定义System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象原创 2020-07-14 16:34:51 · 238 阅读 · 0 评论 -
笔记:C#_LinkedList_演练:Remove方法
LinkedList (Remove方法):伤亡返回码头人员补充副官对话船长:目前我们已经进入作战状态。侦查讯息目前可下达4个命令Remove()某个兄弟 阵亡RemoveFirst()船首兄弟 阵亡RemoveLast()船尾兄弟 阵亡Clear()全军覆没伤亡LinkedList (Remove方法):伤亡First & Last : 船首 & 船尾Remove &.原创 2020-07-14 05:16:25 · 610 阅读 · 0 评论 -
笔记:C#_LinkedList_演练:Add方法
LinkedList (Add方法):上船副官对话您好,船长:欢迎来到训练场,我是您的副官。侦查讯息目前拥有4个方法AddFirst()在链表的头部AddLast()在链表的尾部AddBefore()在某节点的前面AddAfter()在某节点的后面上船LinkedList (Add方法):上船First & Last : 船首 & 船尾Before & After : 兄弟前面 &.原创 2020-07-14 04:43:50 · 729 阅读 · 0 评论 -
笔记:C#_数据结构_集合_双向链表:LinkedList
双向链表:(LinkedList)链表的一种,也叫双链表。它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。属性 方法 添加 删除 查找原创 2020-07-13 19:00:47 · 516 阅读 · 0 评论 -
笔记:C#_数据结构_动态数组:ArrayList
动态数组:ArrayList返回:船坞动态数组:双桅帆船 ArrayList升级版:数组特征:不限制元素数量和数据类型非泛型列表:运输 任意Object类型的成员结构图动态数组:ArrayList售船商操作指南售船商售船商:我来为您介绍一下单桅(Array)和双桅(ArrayList)的区别!单桅(Array)双桅 (ArrayList)不可改造:容量大小固定任意改造:按需自动扩容成员类型单一 长度固定长度可变.原创 2020-07-13 15:42:31 · 217 阅读 · 0 评论 -
笔记:C#_数据结构_辨析:Array & ArrayList & List
要比较区别,最好的表现形式是表格。表示递进 升级关系 使用流程图地图Array 数组简介特性ArrayList简介特性引导List简介特性三者比较ArrayArrayListList简介最早出现:有胜于无数据存储和检索:专用类解决不安全类型&装箱拆箱性能损耗特性内存中是连续的存储的,所以索引速度很快,而且赋值与修改元素也很简单它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。最关键的区别原创 2020-07-13 13:48:06 · 221 阅读 · 0 评论 -
笔记:C#_数据结构_堆栈&队列
堆栈与队列(Stack & Queue)数据结构:什么是后进先出?什么是先进先出?一张图能说明一些问题:杯子与管子: 是杯管不是悲观!堆栈:像杯子队列:像管子先进去的(A) 后出来先进去的(A) 先出来后进去的(D) 先出来后进去的(D)后出来...原创 2020-07-12 12:01:11 · 240 阅读 · 0 评论 -
C#_泛型集合方法_List.IndexOf()
C# List.IndexOf() 查找索引号引导用于查找元素找到 返回 索引值未找到 返回 -1港口地图C# List.IndexOf() 查找索引号使用清单1 准备:定义一个用户类2 准备:定义一个数据容器 添加成员3 开始使用!星辰大海使用清单1 准备:定义一个用户类酒馆:准备船员这个过程类似,酒馆张贴水手船员的身份注册契约,船长通过这张契约来招募水手。class User{ //测试类 不担心安全问题 使用public权限 方便调用 public i.原创 2020-07-12 07:25:40 · 3291 阅读 · 0 评论 -
笔记:C#_数据结构_数组:Array
C# 数组(Array)返回:船坞数组:单桅帆船最基础的:多数据容器。数据就像船上的船员结构图C# 数组(Array)组件初始化器索引器属性组件名称说明初始化器数组是引用类型,必须 为其分配堆上的内存索引器声明和初始化数组后,可使用索引器访问数组元素初始化器实例int[] arr;//声明数组:租用船只arr = new int[3]{1,2,5};//初始化器:确定船只房间[3] 船员1,2,5上船简.原创 2020-07-11 22:42:02 · 247 阅读 · 0 评论 -
笔记:C#_泛型集合方法_列表:List
List一览表:方法和属性List的方法属性众多,我采用的攻克策略是:由简到繁,打怪升级!主线剧情:CURD=CRD+Ucrud操作,表示是增删改查. c[create] / r[read] / u[update] /d[delete]原创 2020-07-11 01:30:47 · 527 阅读 · 0 评论 -
笔记:C#_设计模式:单例
单例:简明指南单例的好处是可以保存对象中的数据,只需实例化一次,就可以随时随地实现跨脚本访问该对象。准备工作1 声明一个类:(创建一个脚本)Person.csclass Person{ public int id;//定义一个公共成员}2 创建单例: person// 单例public static Person person{get;private set;}memo:注意大小写(通常类首字母大写,实例小写)3 实例化单例:person=this;class Person原创 2020-07-06 11:57:03 · 228 阅读 · 0 评论 -
笔记:C#_对象池_异常代码: c0000005
BUG问题描述:我在开发对象池的时候,遇到内存溢出的问题,导致程序闪退。花了2个小时才将其解决,下面讲一下要点。异常代码: c0000005在创建一个对象将私有成员private int id,进行了属性设置,visio studio中快捷键是Ctrl+R+E。结果不小心代码变成了以下这样:public in ID{get=>id;set=>ID=value;}问题就在于set中的 ID=value;造成了循环引用赋值,使得内存溢出,直接导致程序退出!问题签名:问题事原创 2020-07-06 11:37:21 · 1173 阅读 · 0 评论 -
笔记:C#_委托_delegate
简明指南:委托比喻我把委托看成是手枪上的弹匣,而需要委托的函数则是弹匣中的子弹。要打几枪就在委托里装几发子弹,然后带上这把枪;而不是去为每把枪装上一发子弹,然后背一大堆枪;这里的枪就是主函数Main();子弹可能是One(),Two(),Three()…弹匣就是委托容器delegate;说明要使用委托,先要声明委托,就是起草设计图。接着是将委托这个弹匣照着设计图生产出来。然后就是使用了。执行清单1:准备工作:设计图1、 声明需要 委托的函数: int One() { re原创 2020-07-24 06:22:53 · 200 阅读 · 0 评论 -
笔记:C#_泛型集合方法_List.Find()
List.Find() 指南Find() 相当于:实现CURD中的查找功能。Find 方法的实参:谓词,代表查找条件 。即 find(谓词),通过谓词实现查找;谓词:一个方法,检查集合的每一项。谓词的返回:bool值,指出该项是否匹配。Find方法的返回:发现的第一个匹配项。实例准备工作先要 声明 一个Person类: 里面包含ID和Name。再 实例化 2个Person对象:ID{1,2} Name{“rose”,“jack”}以下是类的声明,可以自己试着写:cla原创 2020-07-03 10:08:55 · 1265 阅读 · 0 评论 -
笔记:C#_可变长参数_Params
笔记:C#_可变长参数_Params使用场景1 在遇到 函数传入的参数个数 无法确定时;2 需要灵活控制传入参数个数时;Params 用于参数的数量可变的情况下,即参数的个数是未知数。使用Params 需要知道以下4点:主要看前两点(基本的&常用的)1、作用的对象:Params只能修饰一维数组public int Sum(params int[] ps){ private int sum=0;//私有成员:sum //遍历数组ps中的每个元素p:进行加和操作 foreac原创 2020-07-02 10:46:32 · 2458 阅读 · 0 评论