看板 C_Sharp 關於我們 聯絡資訊
想問一下 目前有一字串 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://www.ptt.cc/bbs/C_Sharp/M.1762698292.A.728.html
ian90911: new HashSet<string>(source.Split(',')) 然後Contains 11/11 00:41
disabledman: contains("555,") 11/20 07:13
ssccg: 多做Split肯定比較慢,Split的過程就已經掃過整個字串了 11/24 11:22
ssccg: 你的字串格式對每4個字元,前3個任一個比對失敗就直接跳下 11/24 11:27
ssccg: 一組,直接寫一個迴圈就能保證上限O(n)比一般的substring演 11/24 11:29
ssccg: 算法(Contains內建做法)都要快 11/24 11:29