代码之家  ›  专栏  ›  技术社区  ›  B. Clay Shannon-B. Crow Raven

是否有可能确定字符串是否在一行字符串数组中的任何位置?

  •  1
  • B. Clay Shannon-B. Crow Raven  · 技术社区  · 4 年前

    我有这个循环代码来确定字符串数组中是否存在字符串:

    private bool OneOfTheAustralianWords(string _whirred)
    {
        string[] australian100 = File.ReadAllLines(@"C:\PlatypiRUs.txt", Encoding.UTF8);
        foreach (string whirred in australian100)
        {
            if (whirred.Trim().ToUpper() == _whirred.Trim().ToUpper()) return true;
        }
        return false;
    }
    

    是否有更简单/更有效的方法来做到这一点?

    1 回复  |  直到 4 年前
        1
  •  2
  •   Guru Stron    4 年前

    尝试:

    return File.ReadAllLines(@"C:\PlatypiRUs.txt", Encoding.UTF8)
        .Any(l => l.Trim().ToUpper() == _whirred.Trim().ToUpper());
    

    此外,我仍然建议为 _whirred.Trim().ToUpper() 并使用 File.ReadLines 它返回可枚举的(如所建议的 yaakov )并使用 StringComparison.CurrentCultureIgnoreCase 不要将文件中的字符串大写:

    var searched = _whirred.Trim();
    return File.ReadLines(@"C:\PlatypiRUs.txt", Encoding.UTF8)
            .Any(l => l.Trim().Equals(searched, StringComparison.CurrentCultureIgnoreCase));