如何使用indexOf()不敏感地使用case?

时间:2014-11-24 06:36:22

标签: c# asp.net

我有字符串列表:

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

我使用IndexOf的{​​{1}}属性来查找当前列表中的字符串:

List

现在int arrayval = fnColArr.IndexOf("punctuation"); 的值为-1,因为列表中不存在该字符串。但这里唯一的区别是小写。

我想找到字符串arrayval,无论其情况如何。

3 个答案:

答案 0 :(得分:4)

您可以使用重载方法

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");

                }
            }

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你必须这样做。

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