C#中的列表可以描述为最广泛使用的数据类型。使用他调节数据时,通常涉及数据的处理操作。相关的处理数据方法也非常丰富。本文将简要介绍其为什么使用它的原因以及部分部分以及其中一部分的一部分。可忽视处理方法。
首先,以下数组的限制
(1)数组中的元素是固定的:必须确定类型和数量!定义定义后,将无法更改元素的总数(2)如果使用数组类型存储数据,一旦项目需求更改,则必须修改原始数组相关的代码。长度(即元素总数)非常大,导致浪费了存储空间!
与数组相比,他可以动态增加或减少元素数量,而无需任何限制,直接杀死了数组
当然,在实际的项目开发中,对于一些固定的枚举值,类型集合等或相关的数据处理中,数组非常方便。(这很有用!)
然后谈论Arrylist,直接在官方网站上查看相关网站的屏幕截图
由于不建议使用官方网站,因此可以看出它实际上不是常用的,而不是无法使用没有价值的事物,对!
与列表相比,他仍然具有优势,也就是说,他可以存储不同类型的对象数据,并且必须将t限制到其存储元素对象的通用集合类必须一致!
如果ArrayList存储的对象是值类型,则涉及框安装操作。这对程序性能有很大的影响,因此它不被用作最后的度假胜地!
此外,阵列列表中的元素对象的类型是不一致的。在C#(强型语言)中进行处理时,您需要判断,并且还涉及频繁的拳击和拳击。
实际上,就像强大的语言和弱类型语言一样。如果JS将JS与较弱的类型进行比较,则TS是一种强的类型,JS非常酷(当VAR声明变量时,变量几乎可以是任何类型...),但是会出现,并且异常会非常麻烦,对于找到,因为写作时,限制较少,然后将补充最终操作!在TS具有约束类型后,有一些人要写,但基本上不会写错误,如果您写作也一样,则是一样的这是大多数背部语言的重要原因(个人观点...)!
列表功能:只能添加一种数据类型。它可以是基本值类型或类型类型。一旦确定数据类型,就无法更改!
当列表进行数据处理时,可以使用功能强大的LINQ。处理它非常方便。
注意:当列表中的t是参考类型(对象)时,基本类型(值类型)将不会说,因为它可以直接使用!
此外,还有一种特殊的类型,有必要单独取出它,即字符串。在C#中,它属于参考类型,但类似于可以直接比较的值类型,这可以归因于值的类型。
当然,使用linq中的goupby +选择和其他方法仍然很重,但是这里说的不是这些东西,而是直接使用...
那么,为什么不能直接比较参考的类型呢?实际上,那些了解的人知道参考类型,这两个单词的报价是原因!它的值是一个参考地址。在堆栈内存中,地址是唯一的,但是两个地址也可能指向同一堆中的值。...因此,如果要比较,请先比较他的值,您可以比较,您可以进行比较,您可以比较,可以比较,可以比较,可以比较,可以比较,可以比较,可以比较它。只比较一个值,或者可以比较
为何将这些比较方法与呼叫者的两种方法进行比较,为什么重写和重写-RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE -RE。它们仅适用于价值类型比较。对象需要重写内部逻辑!
要重写,您需要编写一个班级来继承
实际上,上面的写作仍然有些严格(1),没有无效的判断。如果某个属性值是空的,则可能是异常(2)不比较上面的对象的所有属性,只需比较名称和年龄,那么Thenthere必须在20岁时超过一个名为Zhang San的人在该国,不可能实现目标。(这只是一个示例,比较了多少个属性,或者基于项目中的实际情况...如果您有ID,则可以比较它。ID不会更快....)
添加(1)再次写
只需使用名称空间consoleapp1 {class program {static void main(string [] args){//交叉点:cather a.intersectnew person {name =“ ls”,age = 10},new person {new person {name =“ ww”,age ape= 13},新人{name =“ ls”,age = 10},new Person {name =“ ww”,age = 13};var _new =新列表{new Person {name =“ zs”,age = 21},new Person {name =“ ls”,age = 31},new Person {name =“ ww3”,age = 13}}};var _obj = _old.intersect(_new,new mycomparer())。tolist();for(int i = 0; i <_obj.count; i ++){var x = _obj [i];console.writeline(“名称:{0},年龄:{1}”,x.name,x.age);//结果:名称:ZS,年龄:21} console.Readline(); public String name {get;set;} public int age {get;放;}}}
//结果:名称:ZS,年龄:21名:LS,年龄:10名:WW,年龄:13名:LS,年龄:31名:WW3,年龄:13
当你没事的时候,你就不会碰鱼。如果您为老板工作,您的学习是为了自己!学习语言是一个长期的过程。当每个知识点都很好时,请思考,互相打破,深入并使用它很长时间。随着时间的流逝,可能会有意外的收益。
原始:https://juejin.cn/post/7102414161233051684