博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List<T> 类相关排序
阅读量:4357 次
发布时间:2019-06-07

本文共 1075 字,大约阅读时间需要 3 分钟。

 

List<T> 类是  类的泛型等效类。 该类使用大小可按需动态增加的数组实现  泛型接口。

 

List<T> 类既使用相等比较器又使用排序比较器。

 

  • 诸如 、、   这样的方法对列表元素使用相等比较器。 类型 T 的默认相等比较器按如下方式确定。 如果类型 T 实现  泛型接口,则相等比较器为该接口的  方法;否则,默认相等比较器为 

  • 诸如    这样的方法对列表元素使用排序比较器。 类型 T 的默认比较器按如下方式确定。 如果类型 T 实现  泛型接口,则默认比较器为该接口的  方法;否则,如果类型 T实现非泛型  接口,则默认比较器为该接口的  方法。 如果类型 T 没有实现其中任一个接口,则不存在默认比较器,并且必须显式提供比较器或比较委托。

 

List<T> 不保证是排序的。 在执行要求 List<T> 已排序的操作(例如 )之前,您必须对 List<T> 进行排序。

 

可使用一个整数索引访问此集合中的元素。 此集合中的索引从零开始。

 

List<T> 接受 null 作为引用类型的有效值并且允许有重复的元素。

 

性能注意事项

 

在决定使用 List<T> 还是使用  类(两者具有类似的功能)时,记住 List<T> 类在大多数情况下执行得更好并且是类型安全的。 如果对 List<T> 类的类型 T 使用引用类型,则两个类的行为是完全相同的。 但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。

如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List<T> 类的实现。 这意味着不必对 List<T> 对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。

确保用于类型 T 的值类型实现  泛型接口。 如果未实现,则诸如  这样的方法必须调用  方法,后者对受影响的列表元素进行装箱。 如果值类型实现  接口,并且您拥有源代码,则还应实现  泛型接口以防止    方法对列表元素进行装箱。 如果您不拥有源代码,则将一个  对象传递给    方法。

使用 List<T> 类的特定于类型的实现,而不是使用  类或自己编写强类型包装集合,这样是很有好处的。 原因是您的实现必须做 .NET Framework 已经为您完成的工作,并且公共语言运行时能够共享 Microsoft 中间语言代码和元素据,这是您的实现所无法做到的。

 

摘自:

 

转载于:https://www.cnblogs.com/peasana/archive/2012/07/05/peas.html

你可能感兴趣的文章
linux下安装Mongodb
查看>>
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>
ZOJ 2532 Internship
查看>>
HDU 3452 Bonsai
查看>>
[Erlang12] Mnesia分布式应用
查看>>
图的遍历 | 1013 连通块块数
查看>>
Kinect 开发 —— 进阶指引(上)
查看>>
python学习笔记(六)time、datetime、hashlib模块
查看>>
uva489(需要考虑周全)
查看>>
C-关键字(二)
查看>>
排序笔记
查看>>
下载360doc.com里的文章
查看>>
【转】globk和glorg中使用的apr文件
查看>>
一款纯css3实现的机器人看书动画效果
查看>>
加班与效率
查看>>
轻量级Modal模态框插件cta.js
查看>>
MyEclipse下SpringBoot+JSP整合过程及踩坑
查看>>
重定向和管道
查看>>
实验五
查看>>