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的效率比较 的相关文章

  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 使用 C# 和 ASP.NET 在电子邮件附件中发送 SQL 报告

    我正在尝试使用 ASP NET 和 C 从 sql reportserver 2008 作为电子邮件附件发送报告 到目前为止我学会了如何获取 PDF 格式的报告 http weblogs asp net srkirkland archive
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • 如何从 Boost.PropertyTree 复制子树

    我有一些boost property tree ptree 我需要树来删除一些具有特定标签名称的元素 例如 xml 表示源ptree如下
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • 如何在C#中控制datagridview光标移动

    我希望 datagridview 光标向右移动到下一列 而不是在向单元格输入数据后移动到下一行 我试图通过 dataGridView1 KeyDown 事件捕获键来控制光标 但这并不能阻止光标在将数据输入到单元格后移动到下一行 提前感谢你的
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c

随机推荐

  • 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