gpt4 book ai didi

c# - 用于 .NET 的快速且内存高效的 ASCII 字符串类

转载 作者:可可西里 更新时间:2023-11-01 09:13:45 24 4
gpt4 key购买 nike

这可能以前有人问过,但我找不到任何这样的帖子。是否有处理 ASCII 字符串的类?好处很多:

  1. 比较应该更快,因为它只是逐字节比较(而不是使用可变编码的 UTF-8)
  2. 内存效率高,在大字符串中应该使用大约一半的内存
  3. ToUpper()/ToLower() 的更快版本,使用语言不变的查找表

Jon Skeet 写了一个基本的 AsciiString implementation并证明了#2,但我想知道是否有人更进一步并完成了这样的类(class)。我确信会有用处,尽管通常没有人会采用这样的方法,因为所有现有的 String 函数都必须手动重新实现。 String <> AsciiString 之间的转换会分散在各处,从而使原本简单的程序变得复杂。

有这样的类(class)吗?在哪里?

最佳答案

我想我会发布我努力实现一个系统的结果,该系统具有尽可能多的字符串支持和兼容性。它可能并不完美,但它应该为您提供一个不错的基础,以便在需要时进行改进。

ASCIIChar 结构和 ASCIIString 字符串隐式转换为它们的原生对应物以便于使用。

OP 关于替换 ToUpper/Lower 等的建议已经以比查找列表快得多的方式实现,并且所有操作都尽可能快速且内存友好。

抱歉无法发布源代码,太长了。请参阅下面的链接。

  • ASCIIChar - 替换 char,将值存储在字节而不是 int 中,并为字符串类提供支持方法和兼容性。实现可用于 char 的虚拟所有方法和属性。

  • ASCIIChars - 为每个有效的 ASCII 字符提供静态属性以便于使用。

  • ASCIIString - 替换字符串,将字符存储在字节数组中,并实现几乎所有可用于字符串的方法和属性。

关于c# - 用于 .NET 的快速且内存高效的 ASCII 字符串类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com