TStringList与TList <string>

Hol*_*rwa 29 delphi generics tstringlist

使用标准有什么不同

type 
  sl: TStringList 
Run Code Online (Sandbox Code Playgroud)

与使用通用TList相比

type 
  sl: TList<string>
Run Code Online (Sandbox Code Playgroud)

据我所知,两者表现完全相同.

这只是做同样事情的另一种方式吗?

是否存在一个比另一个好的情况?

谢谢!

Rob*_*edy 42

  • TStringList是TStrings的后代.
  • TStringList知道如何按字母顺序排序.
  • TStringList有一个Objects属性.
  • TStringList不会使您的代码与所有以前版本的Delphi不兼容.
  • TStringList可以用作已发布的属性.(目前,一个bug会阻止通用类的发布.)

  • TStringList是TStrings的后代这一事实是一个主要特征:它可以在使用TStrings的VCL中使用.因此在代码中使用TStrings非常方便. (4认同)

Dar*_*ler 12

在仿制药出现之前,TStringList已经在Delphi中存在了很长时间.因此,它构建了一些有用的功能,这些功能是通用的字符串列表所不具备的.

泛型版本只是创建一个与TList相同的新类型,它适用于String类型.(.Add(),. Insert(),. Remove(),. Clear()等)

TStringList具有基本的TList类型方法和其他自定义处理字符串的方法,例如.SaveToFile()和.LoadFromFile()

如果你想要向后兼容,那么TStringList绝对是你要走的路.
如果您想要使用增强功能来处理字符串列表,那么TStringList就是您的选择.如果你有一些基本的编码基础,你想要使用任何类型的列表,那么你可能需要远离TStringList.