C#字符串比较错误

时间:2016-10-16 22:29:38

标签: c# string-comparison

我正在尝试检查字符串数组中是否存在值。下面的一个工作,但当我尝试下一个代码块时,它失败了。

bool exixts;
string toCheck= "jupiter";

string[] printer = {"jupiter", "neptune", "pangea", "mercury", "sonic"};

if(printer.Contains(toCheck))
{
    exists = true;
}

如何检查修剪和区分大小写?

我试过这个

bool exixts;
string toCheck= "jupiter   ";

string[] printer = {"jupiter", "neptune", "pangea", "mercury", "sonic"};
 if(printer.Contains(toCheck.Trim(),StringComparison.InvariantCultureIgnoreCase)))
{
    exists = true;
}

2 个答案:

答案 0 :(得分:2)

IEnumerable<string>.Contains(value, comparer)需要比较类实例,而不是枚举值。

该库确实有一些现成的比较器可用:

//if(printer.Contains(toCheck.Trim(),StringComparison.InvariantCultureIgnoreCase)))
if (printer.Contains(toCheck.Trim(), StringComparer.OrdinalIgnoreCase)) 

答案 1 :(得分:1)

或者你可以这样做,

bool exists = printer.Any(x=> x == toCheck.Trim());

希望有所帮助,