【问题标题】:How do I use indexOf() case insensitively?如何不区分大小写地使用 indexOf()?
【发布时间】:2016-04-19 00:35:55
【问题描述】:

我有字符串列表:

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

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

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

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

我还想找到字符串punctuation,不管大小写。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    你可以使用重载方法

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回复,但不需要将完全小写转换为字符串
      【解决方案3】:

      你必须这样做。

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

      【讨论】:

      • 是的,不是数据库的问题,只是在这里展示
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      相关资源
      最近更新 更多