比较整数和整数还是字符串和字符串更有效

2023-12-27

我有一个用 C# 编写的程序,其中有很多整数和字符串之间的比较。

所以出于性能原因,我只想知道哪个更有效率?

如果我们有:

int a  = 5;
string b = "5";

if(a == int.Parse(b)) { }

OR

if(a.ToString() == b) { }

我实际上使用一些示例和定时循环对此进行了分析。事实证明,Parse 胜出小整数,而 ToString 胜出大整数。这种差异非常小,不应该成为一个问题,但是,正如其他人提到的,通过考虑字符串根本不代表整数的情况,您可能会做出更好的选择。

Edit:对于那些感兴趣的人,这里是来源,快速'n'肮脏:

using System;
using System.Diagnostics;

namespace CompareTest
{
    static class Program
    {
        static void Main(string[] args)
        {
            int iterations = 10000000;
            int a = 5;
            string b = "5";

            Stopwatch toStringStopwatch = new Stopwatch();
            toStringStopwatch.Start();

            for (int i = 0; i < iterations; i++) {
                bool dummyState = a.ToString() == b;
            }

            toStringStopwatch.Stop();

            Stopwatch parseStopwatch = new Stopwatch();
            parseStopwatch.Start();

            for (int i = 0; i < iterations; i++) {
                bool dummyState = a == int.Parse(b);
            }

            parseStopwatch.Stop();

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

比较整数和整数还是字符串和字符串更有效 的相关文章

随机推荐

  • 循环中的空间局部性

    据我了解 空间局部性与不久的将来使用的附近的记忆有关 但是我想知道如果循环执行多次 这是否会带来良好的空间局部性 预先感谢 如果我很难理解 请抱歉 循环的迭代次数不一定会影响空间局部性 循环是什么doing does 实际上 空间局部性的关
  • bash:在 MobaXterm 中运行 gradle 时未找到小程序

    我目前正在评估MobaXterm http mobaxterm mobatek net 作为我当前在 Windows7 计算机上安装的普通 Cygwin 的替代品 我遇到的一件事是运行 gradle 执行时我总是得到 bash applet
  • __init__() 接受 2 个位置参数,但使用 WebDriverWait 和 Expected_conditions 作为 Selenium Python 的 element_to_be_clickable 给出了 3 个位置参数

    我看到了类似的问题 但就我而言 我的代码中甚至没有 init 函数 如何解决这个问题呢 问题出在线路上 EC element to bo clickable from selenium webdriver common by import
  • Java 中的事件监听器

    我一直在 AS3 中使用事件侦听器 但似乎在 java 中没有事件侦听器 图形组件除外 真是令人惊讶 问题是 我如何在java中实现我自己的事件监听器 也许以前有人做过这项工作 您可以定义一个监听器接口 public interface E
  • 为什么Flash对CPU的要求如此之高?

    最近我听到史蒂夫 乔布斯将此作为 IPADS 上没有 Flash 的主要原因 一般情况下 Flash对CPU来说并不困难 Flash内容对CPU来说是困难的 人们通常不会使用 Flash 来显示静态文本和位图 他们将其用于矢量动画和视频以及
  • Android contextmenu项目大小/高度,如何更改?

    如何更改上下文菜单项的大小 高度 谢谢 莱斯利 它并不是真的要修改 它是为了以标准方式处理菜单 有一些方法可以修改菜单及其项目 例如 请参见此处 http www techjini com blog 2011 04 19 customizi
  • 如何在没有CLR的情况下调试SQL Server 2008中的存储过程?

    如何在 SQL Server 2008 Management Studio 中调试存储过程 我试图在 SQL 查询上设置断点 然后按开始调试 但出现错误 无法在我的计算机上启动调试 Debug cannot be started at
  • 在 Python 中使用递归和 Yield 语句生成幂集

    我对 Python 有点陌生 正在进行编程练习 我编写了以下递归方法来生成电源组 https en m wikipedia org wiki Power set基于 Python 中的输入列表 它应该返回一个生成器 该生成器生成传入的给定列
  • 如何在Java中实现类似C#的语言级别事件

    C 有这样的概念语言层面的事件 http msdn microsoft com en us library awbftdfh aspx 使用保留关键字event and delegate定义发布者和订阅者方法 它一直询问 Java 是否对此
  • 有什么办法可以改变视频的质量吗?

    我正在查看 android youtube API 文档和示例应用程序 我找不到任何描述加载视频并设置其质量 低或高 的 API 有没有办法改变视频的质量 Android youtube api https developers googl
  • 更新 xml 文件中的值

    我有一个 xml 文件
  • 在 Makefile 中打印:@echo 与 $(info )

    makefile 中这两个命令有什么区别 echo Hello World info Hello World 看起来 echo and info打印相同的输出 那么差异在哪里呢 以及何时使用哪一个 Well echo是一个 shell 命令
  • CreateProcess error = 2,系统找不到指定的文件错误

    我在 Windows 上安装了 Android Studio 2 3 3 在 Windows 上也安装了 Git 我从 GitHub 克隆了一个存储库 VCS gt 从版本控制中签出 gt Git gt 粘贴链接 并尝试运行它 但是 gra
  • Java 的 Yacc 等效项

    我正在开发一个 Java 编译器设计项目 词法分析已经完成 使用 jflex 我想知道哪种类似 yacc 的工具最适合进行语法分析 最有效 最容易使用等 以及原因 如果你特别想要类似 YACC 的行为 表驱动 我知道的唯一一个是CUP ht
  • Android应用程序的包名应该是什么?

    我想知道android应用程序的包名应该是什么 意味着通常我们使用 com appname 或 com organizationName appName 但是当我们将应用程序提交到市场时 有时会显示与包名称相关的错误 请更改包名称 它不应该
  • 如何在java中计算逆累积贝塔分布函数

    我正在寻找一个java库 实现 它支持计算beta分布的逆累积分布函数 又名分位数估计 具有合理的精度 当然我已经尝试过了阿帕奇公共数学 http commons apache org math 但是在版本3中似乎仍然有一些精度问题 htt
  • 如何使用参数化参与者在akka中创建路由器?

    我正在尝试在 Scala 中使用广播路由器 如果我没有记错的话 它应该如下所示 val system ActorSystem My beautiful system val workerRouter system actorOf Props
  • ASP.NET MVC 遇到问题?沮丧的

    我对 ASP NET MVC html 帮助程序 如 TextBoxFor HiddenFor 等 有问题 如果我有一个模型 如带有字符串成员 Name 的 Employee 并执行 Html TextBoxFor p gt p Name
  • Qt5.3 中 OpenGL 渲染之上的 QML UI

    我正在尝试在 Qt5 3 上的 openGL 渲染之上渲染 QML UI 到目前为止 QML 小部件具有黑色背景 而我希望有一个透明背景 我将代码展开在一个文件中 以便更容易阅读和编译 include
  • 比较整数和整数还是字符串和字符串更有效

    我有一个用 C 编写的程序 其中有很多整数和字符串之间的比较 所以出于性能原因 我只想知道哪个更有效率 如果我们有 int a 5 string b 5 if a int Parse b OR if a ToString b 我实际上使用一