C#包含空格的方法

时间:2013-07-04 07:46:23

标签: c# if-statement windows-phone-8 contains

我无法检查列表中的特定值,使用contains方法,它似乎无法正常工作,是否有另一种方法可以检查带空格的字符串值。

例如:

  string test = "Hello Stack Person";

  if(test.ToLower().Contains("hello stack person"))
  {
    //code to execute
  }

如果我的if语句没有采取,我做错了什么?

感谢名单!

3 个答案:

答案 0 :(得分:2)

首先,您应该检查您认为是空格的字符是否真正空格。如果它们是不间断的空格,那么像您发布的简单比较将无效。虽然我认为Unicode拥有更多的可能性,但在大多数情况下这应该可以解决问题。

if (test.ToLower().Replace('\u00A0', ' ').Contains("hello stack person"))
{
    // code
}

现在我不知道为什么你甚至不得不以这种方式处理非破坏空间,因为它们几乎只用于正确渲染文本。我曾经遇到过这样的问题,我花了一些时间才意识到问题是什么,因为我将两个字符串看起来看起来与相同。

答案 1 :(得分:0)

使用trim()删除空格

如果您使用的是列表,请使用Select

var selection = list.Select(x => x.ToString()
                .Trim().ToLower() == "hello stack person");

要获得真或假使用Any

var result = list.Any(x => x.ToString()
                .Trim().ToLower() == "hello stack person");

答案 2 :(得分:0)

我看不到你所说的list。如果您指的是字符串的char数组,请使用String.IndexOf

string test = "Hello Stack Person";
bool contains = test.IndexOf("hello stack person", StringComparison.OrdinalIgnoreCase) >= 0;

请勿使用ToLower来区分不区分大小写的StringComparison

请参阅:Does Your Code Pass The Turkey Test?