ToLower()不是小写字符串?

时间:2011-07-27 20:32:59

标签: c#

 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()不起作用?

任何人都可以查看我的作品,如果我在这里做事,请告诉我吗?

3 个答案:

答案 0 :(得分:3)

试试这个:

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
}

答案 1 :(得分:3)

这是按预期工作的,来自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
}

答案 2 :(得分:1)

在这种情况下,不使用ToLower,而使用Contains的{​​{1}}重载更有效。

原因是StringComparer将创建原始字符串的(临时)副本,而ToLower重载则不会:

Contains