C#中字符串判断EndsWith和Contains的效率比较

2023-10-28

	关于字符串的判断,EndsWith和Contains下面做了两个简单的例子,运行后测试了一下所耗时间。
		public void TestContains()
        {
            DateTime _starTime = DateTime.Now;
            string str = "2020年-10kV分支线";
            for (int i = 0; i < 1000000; i++)
            {
                if (str.Contains("分支线"))
                {
                    continue;
                }
            }
            var timeSpan = DateTime.Now - _starTime;
            string message1 = string.Format("\n共耗时{0}分{1}秒{2}毫秒", timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
            GlobalVariable.CurrentDoc.Editor.WriteMessage(message1);
        }
		public void TestEndsWith()
        {

            DateTime _starTime = DateTime.Now;
            string str = "2020年-10kV-分支线";
            for (int i = 0; i < 1000000; i++)
            {
                if (str.EndsWith("分支线"))
                {
                    continue;
                }
            }
            var timeSpan = DateTime.Now - _starTime;
            string message1 = string.Format("\n共耗时{0}分{1}秒{2}毫秒", timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
            GlobalVariable.CurrentDoc.Editor.WriteMessage(message1);
        }

结果分析:
将以上两个方法各运行10次,取平均时间
TestContains耗时110ms
TestEndsWith耗时384.5ms
结论:字符串的Contains方法要比EndsWith效率要高。
这只是平常运用的情况下,如有其他情况,请各位朋友告知,感谢!

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

C#中字符串判断EndsWith和Contains的效率比较 的相关文章

  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • run nerf

    install cuda install cudnn install anoconda 2022 08 18 wget https repo anaconda com archive Anaconda3 2022 05 Linux x86
  • 接口自动化get请求一些小知识点

    get 请求 requests get get请求的参数可以写在url里 写在url里时 参数和url之间需要加 get 请求的参数可以不写在url里 可以组织为字典传给参数param get 请求可以不传参数 获取响应信息 r reque
  • React之Hook(四)——使用 Effect Hook

    Effect Hook 可以让你在函数组件中执行副作用操作 import React useState useEffect from react function Example const count setCount useState
  • Doris数据划分

    数据划分 基本概念 Row Column 一张表包含行 Row 和列 Column Column可以分为两大类 Key和Value Tablet Partition 在Doris的存储引擎中 用户数据被水平划分为若干个数据分片 Tablet
  • Android面试题(32)-android编译过程和安装流程

    android app的编译过程 从网上拷了一张图 这张图很好的讲述了android的编译打包过程 接下来就具体的分析分析 大致分为7步 1 aapt Android Asset Packaging Tool android构建工具 在an
  • 网络前三层(物理,数据链路层,网络)数据包传输过程

    前三层 起始 第一层 物理层 hub 第二层 数据链路层 交换机 第三层 网络层 路由器 起始 起始 我就是一台电脑A 有一天 突然另一台电脑B想和我进行通话 于是我们各自开了个网口 用一根网线连接起来 这样就可以进行通信了 至于为什么可以
  • 教你如何使用解决keil编译大小限制问题

    关于上一篇我们讲解到可能刚接触keil的人会因为没有使用注册机 好像不能使用注册机 所以就缩写吧 导致编译超出32K文件时候会报错的问题 于是在这一篇我们就来好好讲解一下如何使用keil注册机去破解keil 解决方法 参考我的这篇文章 因为
  • PyQt中QLabel背景与字体的一些设置

    本文原创 原文地址 http blog csdn net jiuzuidongpo article details 45485127 一般来说 对QLabel的背景和字体设置的话 有两种方法 一种是使用样式表 就是stypesheet 另一
  • 华为OD机试 - 九宫格(Java)

    题目描述 九宫格是一款广为流传的游戏 起源于河图洛书 游戏规则是 1到9九个数字放在3 3的格子中 要求每行 每列以及两个对角线上的三数之和都等于15 在金麻名著 射雕英雄传 中黃蓉曾给九宫格的一种解法 口诀 戴九恩一 左三右七 二四有肩
  • 脉冲星测时软件TEMPO2安装

    下载 https bitbucket org psrsoft tempo2 downloads 在安装TEMPO2之前需要安装pgplot FFTW CFITSIO等数学库 安装时 注意运行 configure后输出的日志信息 会提示是否缺
  • 2021-Twins: Revisiting the Design of Spatial Attention

    文章目录 1 Title 2 Summary 3 Problem Statement 4 Method s 4 1 Twins PCPVT 4 2 Twins SVT 4 2 1 Locally Grouped Self Attention
  • node.js(读取文件)

    fs fs 模块是Node js官方提供的 用来操作文件的模块 它提供了一系列的方法和属性 用来满足用户对文件的操作需求 读取文件 fs readFile 读取文件 1 导入fs模块 来操作文件 const fs require fs 2
  • glibc版本查看_glibc做版本兼容的原理介绍

    相关技术叫 compact symbols 当我们比如查看libc 2 29 so的dynamic symbol table的时候 我们可以看到3个glob64的实现 随后你的程序要refer对应的glob64 这时 你的dynamic l
  • qt自定义MessageBox

    头文件 ifndef HINT INTERFACE H define HINT INTERFACE H include
  • docker 安装卸载及常用命令

    Docker 镜像与容器 1 安装卸载docker 1 1 卸载docker 1 1 1 查看已安装的docker列表 root centos7 yum list installed grep docker containerd io x8
  • Python、pip以及libsvm等的安装

    从python官网下载并安装python https www python org downloads windows 设置python的环境变量 命令行输入python 如下安装成功 安装pip 到官网下载pip https pypi p
  • Unity——控制物体移动的方法

    控制物体移动的三种方法 一 常规方法 四个方向 if Input GetKey KeyCode W transform Translate Vector3 forward moveSpeed Time deltaTime if Input
  • android的模拟器闪动处理

    为什么80 的码农都做不了架构师 gt gt gt 今天 建立了一个示例android项目 运行的时候 模拟器每隔几秒便闪一下 开始以为是项目的问题 或者版本 v16 的问题 换了其他 还是闪动 网上查了下 只有一人遇到 http zhid
  • 一些在线图床工具

    以下排列按个人喜爱程度 SM MS https sm ms 和picgo搭配 非常哇塞 普通用户只有5G 不算很大 对我来说够用了 举例 https sm ms image fiNMYZ5pxycUmjX 路过图床 https imgchr
  • C#中字符串判断EndsWith和Contains的效率比较

    关于字符串的判断 EndsWith和Contains下面做了两个简单的例子 运行后测试了一下所耗时间 public void TestContains DateTime starTime DateTime Now string str 20