作者sicao (adios)
看板C_Sharp
标题[问题] 找出字串是否存在某字最快的方法??
时间Sun Nov 9 22:24:50 2025
想问一下
目前有一字串 string source = "123,124,130,....";
是不重复三位数以逗号连接起来的一字串
那想知道某数(ex:555)是否在此字串内
哪种方式是最快的??
目前有一些方法
直接 source.Contains("555");
或
先弄成阵列
string[] _array = source.split(',');
再用
回圈
Array.FindIndex(_array, x => x == "555");
Array.Exists(_array, element => element == "555");
_array.Contains("555");
.... 族繁不及备载
请问哪种效率快又好?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.53.170 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1762698292.A.728.html
1F:推 ian90911: new HashSet<string>(source.Split(',')) 然後Contains 11/11 00:41
2F:→ disabledman: contains("555,") 11/20 07:13
3F:→ ssccg: 多做Split肯定比较慢,Split的过程就已经扫过整个字串了 11/24 11:22
4F:→ ssccg: 你的字串格式对每4个字元,前3个任一个比对失败就直接跳下 11/24 11:27
5F:→ ssccg: 一组,直接写一个回圈就能保证上限O(n)比一般的substring演 11/24 11:29
6F:→ ssccg: 算法(Contains内建做法)都要快 11/24 11:29