zoukankan      html  css  js  c++  java
  • What is the fastest, case insensitive, way to see if a string contains another string in C#?

    Since ToUpper would actually result in a new string being created, StringComparison.OrdinalIgnoreCase would be faster, also, regex has a lot of overhead for a simple compare like this. That said, String.IndexOf(String, StringComparison.OrdinalIgnoreCase) should be the fastest, since it does not involve creating new strings.

    I would guess (there I go again) that RegEx has the better worst case because of how it evaluates the string, IndexOf will always do a linear search, I'm guessing (and again) that RegEx is using something a little better. RegEx should also have a best case which would likely be close, though not as good, as IndexOf (due to additional complexity in it's language).

    You peaked my curiousity (15,000 length string, 10,000 loop):

    IndexOf-OrdinalIgnoreCase 00:00:00.0156251

    RegEx-IgnoreCase 00:00:00.1093757

    IndexOf-ToUpper 00:00:00.9531311

    IndexOf-ToLower 00:00:00.9531311

    Placement in the string also makes a huge difference:

    At start:

    Match00:00:00.6250040

    IndexOf00:00:00.0156251

    ToUpper00:00:00.9687562

    ToLower00:00:01.0000064

    At End:

    Match00:00:00.5781287

    IndexOf00:00:01.0468817

    ToUpper00:00:01.4062590

    ToLower00:00:01.4218841

    Not Found:

    Match00:00:00.5625036

    IndexOf00:00:01.0000064

    ToUpper00:00:01.3750088

    ToLower00:00:01.3906339

  • 相关阅读:
    验证身份证
    base64.js
    mysql常用操作
    drop、truncate和delete的区别
    安装mysql
    一些常用计算
    nuxt+vant+rem项目构建
    vue2安装sass 预编译
    vant ui rem配置流程
    关于vue项目和内嵌iframe页面之间的通信问题
  • 原文地址:https://www.cnblogs.com/hongjiumu/p/2797074.html
Copyright © 2011-2022 走看看