C# 中字符串类型最快(内置)比较是什么

2024-03-13

C# 中字符串类型最快的内置比较方法是什么?我不介意印刷/语义含义:目的是在排序列表中使用比较器以便在大型集合中快速搜索。我认为只有两种方法:Compare and CompareOrdinal。什么是最快的?

此外,是否有更快的字符串比较方法?


我假设您想要小于/等于/大于比较而不仅仅是相等;尽管原则基本相同,但平等是一个略有不同的主题。如果你实际上只是在寻找presence在类似的事情中SortedList,我会考虑使用Dictionary<string, XXX>相反 - 你真的需要所有这些排序吗?

String.CompareOrdinal,或使用重载String.Compare它允许提供比较,并指定序数(区分大小写)比较,例如String.Compare(x, y, StringComparison.Ordinal)将是最快的。

基本上是顺序比较just需要一个字符一个字符地遍历两个字符串,直到找到差异。如果没有发现任何差异,并且长度相同,则结果为 0。如果没有发现任何差异,但长度不相同,则较长的字符串被视为“较大”。如果它does找到差异,它可以立即根据哪个字符在序数方面“更大”来计算出哪个字符被视为“更大”。

换句话说:这就像在两个之间进行明显的比较char[] values.

文化敏感的比较必须执行各种曲折的任务,具体取决于您使用的具体文化。有关此示例,请参阅这个问题 https://stackoverflow.com/questions/1371813。很明显,遵循更复杂的规则会使速度变慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中字符串类型最快(内置)比较是什么 的相关文章

  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • 更改图像颜色与透明背景

    我需要使用 c System Drawings 将透明背景上带有绿色圆圈的图像加载到位图图像中 这是最简单的部分 但是 我需要在将其添加到更大的图像之前更改圆圈的颜色 而不影响周围的透明度 就我而言 我需要将圆圈颜色更改为黄色并将其添加为太
  • C++:字符串流有什么好处?

    谁能告诉我一些在 C 中使用字符串流的实际例子 即使用流插入和流提取运算符输入和输出到字符串流 您可以使用字符串流来转换任何实现operator lt lt 到一个字符串 include
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • 为什么 fgets 接受 int 而不是 size_t?

    功能如strcpy malloc strlen 和其他各种接受他们的参数或返回值作为size t代替int or an unsigned int出于显而易见的原因 一些文件功能 例如fread and fwrite use size t以及
  • 值类型如何实现引用类型

    我遇到了一个值类型正在实现 ref 的场景 类型 只是想知道这怎么可能 幕后发生了什么 结构体是值类型 接口是引用 类型但结构可以实现接口而不会出现任何错误 有什么想法吗 提前致谢 实际上 它同时以两种不同的方式进行 首先 任何值类型都可以
  • 带有嵌入 Flash 视频的 PDF 示例?

    有谁知道我在哪里可以查看嵌入 Flash 视频的 PDF 示例 我知道问这个问题很愚蠢 因为你会认为任何面向技术的用户都应该能够使用谷歌找到一个 但我真的找不到 我的另一个问题是 使用 C 中的 API 将 Flash 视频嵌入 PDF 文
  • 将 std::pair const 转换为 std::pair const 安全吗?

    理论上或实践上 安全吗reinterpret cast a std pair
  • _MM_TRANSPOSE4_PS 在 GCC 中导致编译器错误?

    我第一次在 GCC 而不是 MSVC 中编译我的数学库 并经历了所有的小错误 我遇到了一个根本没有意义的错误 Line 284 error lvalue required as left operand of assignment 284号
  • 使用信号和槽更新指针

    我对 Qt 很陌生 请帮我解决这个问题 我正在使用线程在后台执行密集操作 同时我想更新 UI 所以我使用 SIGNALS 和 SLOTS 为了更新 UI 我发出一个信号并更新 UI 让我们考虑下面的示例代码 struct sample QS
  • ef core 在更新数据库期间不使用 ASPNETCORE_ENVIRONMENT

    我使用 Visual Studio 通过一定的迁移来更新我的所有环境 使用下面的命令效果很好 update database Migration initMigrationProduct c ProductContext Environme
  • “DeploymentItem”属性是什么意思?

    假设我们有一个简短的程序 namespace ConsoleTryIt static class Program static void Main string args var sum Add 1 2 private static int
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • 如何在 stl 模板中使用导出类 (__declspec(dllexport))?

    我正在使用导出的类 class declspec dllexport myclass private template declspec dllexport class std map
  • C++ 在预处理器 #if 中对 sizeof() 比较抛出编译错误

    我有这个 它不会从 Visual Studio 编译错误 致命错误 C1017 无效的整数常量表达式 我该怎么做 template
  • Membership.ValidateUser() 的目的是什么

    我一直在学习有关MembershipProvider类 我认为Membership ValidateUser 方法应该用于登录用户 然而我刚刚了解到有一个FormsAuthentication Authenticate 目的是什么Valid
  • 打印任何类型的数组和列表的通用方法[重复]

    这个问题在这里已经有答案了 每当我调试一段涉及整数 双精度 字符串等数组或列表的代码时 有时我更喜欢打印它们 我为此所做的是为不同类型编写重载的 printArray printList 方法 for e g 我可能有这 3 种方法来打印各
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin

随机推荐

  • 类是托管的,但未在 persistence.xml 文件中列出

    我在我的项目中遇到以下异常 类 com testApp domain Register 被管理 但未在 persistence xml 文件中列出 My persistence xml文件看起来像这样
  • PyQt QListWidget 自定义项

    我如何创建一个 QListWidgetItem 它下面有 1 个图像和 2 个标签 字符串 并且支持 css 这是我尝试过的最后一件事 class CustomListWidgetItem QListWidgetItem QLabel de
  • 隐藏 IONIC-3 中的离子输入验证边框[重复]

    这个问题在这里已经有答案了 我使用的是 ionic 3 我想知道如何删除验证边框颜色 红色和绿色 I tried to removed using this css item inner border bottom color transp
  • 人类可读订单代码的完美哈希函数

    我正在尝试生成从 比方说 无符号 32 位内部 ID 派生的非连续人类可读订单代码 该 ID 从 1 开始 并针对每个新订单自动递增 在下面的示例代码中 每个 hash是独一无二的吗 我计划对 hash使其易于人类阅读
  • Java(14 及以上)instanceof 转换为泛型(例如 List

    我正在使用 Jackson 反序列化 JSON 有效负载 我有一些字段可以是对象或对象数组 所以在我的Java代码中我声明 class Outer private Object inner 我知道内在可以是Map
  • 从 Wikipedia API 中提取数据

    我希望能够使用 json 从维基百科中提取标题和描述 所以 维基百科不是我的问题 我是 json 的新手 想知道如何使用它 现在我知道有数百个教程 但我已经工作了几个小时 它只是不显示任何内容 这是我的代码
  • 如何通过peerJS 点对点连接接收数据?

    我正在尝试使用peerJS 连接两个对等点 我几乎只是在遵循他们的 入门 但我仍然在挣扎 下面是我到目前为止得到的代码
  • Java:从文件加载图像,编辑并添加到 JPanel

    我想将计算机中的图像加载到 2D Graphics 中 以便之后可以对其进行编辑 然后我想将其添加到JPanel 如果您需要查看我的项目 我可以将其发送给您 void loadImage FileDialog fd new FileDial
  • OSX 10.8 xcrun(没有这样的文件或目录)

    执行时gem install jekyll在 OSX 10 8 上安装了来自 Apple 开发人员站点的独立命令行工具包 无 Xcode 时 我遇到以下错误 构建本机扩展 这可能需要一段时间 错误 安装 jekyll 时出错 错误 无法构建
  • SQL 查询限制来自一个表的行,而不是结果集

    我正在运行一个带有连接的简单查询 类似于 SELECT t1 a t2 b FROM t1 LEFT JOIN t2 ON LIMIT 5 As t1有很多行t2 任何大于 2 的数字 LIMIT 语句不会返回前 5 行t1以及来自的相应条
  • const 有什么问题吗?

    已知的不足有哪些const在 C 和 C 0x 中 唯一的问题是const就是这样被严重低估许多开发商 它是 C 工具箱中最好的工具之一 非常锋利 但割伤自己并不危险
  • 禁用的 uibarbuttonitem 的文本颜色始终是正常状态的颜色

    我在我的代码中写道 UIBarButtonItem appearanceWhenContainedIn UINavigationBar class nil setTitleTextAttributes NSForegroundColorAt
  • 限制 Jenkins 仅针对特定分支进行并发构建

    我一直在寻找如何做到这一点一段时间 但我开始认为这是不可能的 与此类似的每个问题似乎都与限制某些节点或整个管道的运行更相关 我们在 Jenkins 中有一个多分支管道 用于处理 PR 构建 分阶段测试和生产发布 三者中的每一个都通过when
  • VC++ 缺少类型说明符 - 假定为 int。注意:C++ 不支持default-int [重复]

    这个问题在这里已经有答案了 以下代码在 VC 6 0 中编译得很好 但是当我在 VS2005 中打开该项目时 出现此错误 BCGPopupMenu h 100 错误 C4430 缺少类型说明符 int 假定 注意 C 不支持default
  • 为可移植类库创建 NuGet 包时出错

    我是 Nuget 新手 我正在尝试为可移植类库项目创建一个 NuGet 包 该项目对我创建的另一个可移植类库具有包依赖性 我遇到了一个问题 在调用时收到错误块包对于项目文件测试组件2 csproj 我从 VS 2013 中的 Portabl
  • &(单个与符号)和 | 是什么意思(单管)运算符进行比较运算?

    在这样的声明中 if valueA valueB 99 print they don t equal 99 什么是 运营商做什么 我认为这意味着如果 valueS 和 value 都不等于 99 则执行该块 然后什么是 在此声明中执行以下操
  • 在zf2中配置多个数据库

    如何在 Zend Framework 2 中配置 和使用 多个数据库 目前我的 global php 中有这个 return array db gt array driver gt Pdo dsn gt mysql dbname my db
  • Pythoncoverage.py 排除行

    背景 我有几个使用coverage py 的Django 项目 并且一直在尝试向我的 coveragerc 配置文件的exclude lines 部分添加一些额外的表达式 问题是 即使使用正确的正则表达式 也可以在测试器中拾取该行 例如ht
  • 删除字符串中的所有 HTML 标签(使用 jquery text() 函数)

    是否可以使用 jquery text 函数删除字符串中的所有 HTML 带有 HTML 标签的字符串 myContent div Hello span world span div 结果必须是 Hello world var myConte
  • C# 中字符串类型最快(内置)比较是什么

    C 中字符串类型最快的内置比较方法是什么 我不介意印刷 语义含义 目的是在排序列表中使用比较器以便在大型集合中快速搜索 我认为只有两种方法 Compare and CompareOrdinal 什么是最快的 此外 是否有更快的字符串比较方法