如何不区分大小写地使用 indexOf()

本文关键字:indexOf 何不区 大小写 | 更新日期: 2023-09-27 18:31:35

我有字符串列表:

List<string> fnColArr = new List<string>();
fnColArr={"Punctuation,period,Space,and,yes"};

我正在使用 IndexOf 属性List在当前列表中查找字符串:

int arrayval = fnColArr.IndexOf("punctuation");

现在 arrayval 的值是 -1,因为列表中不存在该字符串。但这里唯一的区别是小写。

我也想找到字符串punctuation,无论它的大小写如何。

如何不区分大小写地使用 indexOf()

您可以使用重载方法

IndexOf("punctuation", StringComparison.OrdinalIgnoreCase);

例如。

List<string> fnColArr = new List<string>() 
{ "Punctuation", "period", "Space", "and", "yes" };
            foreach (string item in fnColArr)
            {
                if (item.IndexOf("puNctuation", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    Console.WriteLine("match");
                }
            }

或者,您也可以使用 lambda 函数 fnColArr.FindIndex(x => x.ToLower().Equals("punctuation"));

你必须这样做。

List<string> fnColArr = new List<string> {"Punctuation","period","Space","and","yes"};
int arrayval = fnColArr.IndexOf("punctuation",StringComparer.InvariantCultureIgnoreCase);

字符串现在有一个倒数第二的StringComparison参数。

string.IndexOf(string, StringComparison) is >=0 | -1

    public string IgnoreCaseTrimStart(string value, string trim)
    {
        int Position = 0;
        char[] Glyphics = trim.ToCharArray ( );
        foreach ( char Glyph in Glyphics )
        {
            if (value.IndexOf( Glyph, StringComparison.CurrentCultureIgnoreCase ) == Position )
            {
                Position++;
                continue;
            }
            break;
        }
        return value.Substring(Position, value.Length - Position).Trim();
    }

控制台自动完成的代码。