如何不区分大小写地使用 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("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();
}
控制台自动完成的代码。