LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# IndexOf 方法的 10 種另類用法

admin
2025年8月7日 14:11 本文熱度 228

前言

作為一名 C# 程序員,IndexOf 方法可能是你每天都在使用卻從未深入挖掘的工具。

"IndexOf?不就是找字符串位置嘛!"——如果你也這么想,那可就錯過太多好東西啦!

作為一名 C# 老司機,我發現 IndexOf 這個小家伙其實是個隱藏的瑞士軍刀,不僅能幫你找到字符的位置,還能完成許多意想不到的任務。

今天,就讓我們一起來扒一扒 IndexOf 那些不為人知的另類用法,保證讓你驚呼:"原來還能這樣用?!"

IndexOf 另類用法

  1. 檢查字符串是否存在(比Contains更靈活)

    有時候我們需要檢查一個字符串是否包含某個特定的字符或子串,IndexOf 可以輕松搞定:

    // Contains 只能返回 true 或 false,
    // IndexOf 能返回更多的值,可以結合其他條件實現更復雜的驗證邏輯
    if (email.IndexOf("@") != -1
    {
        Console.WriteLine("這像是個郵箱地址!");
    }
  2. 從特定位置開始搜索

    假設你想在字符串中找到第二個出現的某字符或子串,IndexOf 可以幫助你從指定位置繼續搜索:

    string log = "Error:404;Error:500;Error:200";
    int firstError = log.IndexOf("Error");
    int secondError = log.IndexOf("Error", firstError + 1); // 從第一個 Error 后面開始搜索
    Console.WriteLine($"第二個 Error 出現在索引位置: {secondError}");

    // 輸出結果:
    // 第二個 Error 出現在索引位置: 18
  3. 反向搜索(LastIndexOf的好搭檔)

    有時候我們需要找到某個字符或子串最后一次出現的位置,這時可以使用 LastIndexOf

    string path = @"C:\Users\Jacky\Documents\report.docx";
    int lastSlash = path.LastIndexOf(@"\");
    string fileName = path.Substring(lastSlash + 1);
    Console.WriteLine($"文件名是: {fileName}");

    // 輸出結果:
    // 文件名是: report.docx
  4. 結合 Substring 提取關鍵信息

    在解析復雜字符串時,IndexOf 和 Substring 是一對黃金搭檔:

    string data = "Name=張三;Age=30;Occupation=程序員";
    int ageStart = data.IndexOf("Age=") + 4;
    int ageEnd = data.IndexOf(";", ageStart);
    string age = data.Substring(ageStart, ageEnd - ageStart);
    Console.WriteLine($"年齡是: {age}");

    // 輸出結果:
    // 年齡是: 30
  5. 檢查字符串開頭(比StartsWith更靈活)

    有時我們需要判斷一個字符串是否以某個特定前綴開頭,除了 StartsWith,我們還可以使用 IndexOf

    string url = "https://example.com";
    bool isSecure = url.IndexOf("https://") == 0;
  6. 數組中的IndexOf(不只是字符串哦!)

    IndexOf 不僅適用于字符串,還能用于數組。假設我們要在一個整數數組中查找某個值的位置:

    int[] numbers = { 13579 };
    int index = Array.IndexOf(numbers, 5); // 返回2
  7. 忽略大小寫搜索

    默認情況下,IndexOf 是區分大小寫的。如果我們想忽略大小寫進行搜索,可以使用 StringComparison 枚舉:

    string text = "Hello WORLD";
    int index = text.IndexOf("world", StringComparison.OrdinalIgnoreCase);
  8. 結合LINQ實現高級查詢

    IndexOf 可以與 LINQ 結合使用,實現更復雜的查詢操作:

    List<string> files = new List<string> { "a.txt""b.doc""c.txt" };
    var txtFiles = files.Where(f => f.IndexOf(".txt") != -1).ToList();
    Console.WriteLine($"所有 .txt 文件: {string.Join(", ", txtFiles)}");

    // 輸出結果:
    // 所有 .txt 文件: a.txt, c.txt
  9. 快速統計出現次數

    有時我們需要統計某個子串在字符串中出現了多少次,IndexOf 可以幫我們實現:

    string sentence = "the quick brown fox jumps over the lazy dog";
    int count = 0;
    int index = 0;
    while ((index = sentence.IndexOf("the", index)) != -1)
    {
        count++;
        index += "the".Length;
    }
    Console.WriteLine($"'the' 出現了 {count} 次");

    // 輸出結果:
    // 'the' 出現了 2 次
  10. 解析CSV數據(簡易版)

    IndexOf 還可以用來解析簡單的 CSV 數據:

    string csvLine = "John,Doe,30,Programmer";
    List<string> values = new List<string>();
    int start = 0;
    while (start < csvLine.Length)
    {
        int end = csvLine.IndexOf(",", start);
        if (end == -1) end = csvLine.Length;
        values.Add(csvLine.Substring(start, end - start));
        start = end + 1;
    }

總結

看吧,IndexOf 遠不止是"找位置"那么簡單!從字符串處理到數據解析,這個小方法藏著大智慧。

最好的工具往往是那些看似簡單卻內涵豐富的。IndexOf就是這樣一個寶藏方法,值得你深入挖掘!


該文章在 2025/8/8 13:07:02 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
在线精品国产一区二区三区 | 在线亚洲精品专区人妖系列 | 中文方字幕亚洲本在线 | 中文字制服丝袜在线播放 | 青娱乐极品视觉一区二区 | 中国Av网站在线播放 |