ToLower()不是小写字符串
本文关键字:字符串 ToLower | 更新日期: 2023-09-27 18:03:39
List<string> expectedResult = new List<string> { "article i", "article ii", "article iii" };
string result = Selenium.GetText("result_list");
if (expectedResult.Any(result.ToLower().Contains))
{
// do something
}
我得到result = "Article I"
,但expectedResult.Any(result.ToLower().Contains)
返回false。不知道为什么ToLower()
不工作?
试试这个:
List<string> expectedResult = new List<string> { "article i", "article ii", "article iii" };
string result = Selenium.GetText("result_list");
if (expectedResult.Contains(result.ToLower()))
{
// do something
}
这是预期的工作,你的字符串从Selenium必须是不同的。
生成匹配的测试用例:
List<string> expectedResult = new List<string> { "article i", "article ii", "article iii" };
string result = "Article I";
if (expectedResult.Any(result.ToLower().Contains))
{
Console.WriteLine("Contains");
// do something
}
在这种情况下不使用ToLower
更有效,而是使用StringComparer
的Contains
过载。
原因是ToLower
将创建原始字符串的(临时)副本,而Contains
重载不会:
if (expectedResult.Contains(result, StringComparer.CurrentCultureIgnoreCase))
{
// do something
}