过滤掉字符串数组中的双引号

时间:2015-11-25 16:24:53

标签: c# string

我这里有这个函数,它接受一个字符串数组,并且应该将除了一些字符之外的所有字符添加到List

public static void cleanUp(string[] results)
{
     List<string> text = new List<string>();
     for (int i = 0; i < results.Length; i++)
     {
         string key = results.ElementAt(i);
         if (key != "\",\"" || key != "\"{\"" || key != "\"}\"" || key != "\":\"")
         {
             text.Add(key);
         }
     }
}

在结果数组中,有些元素看起来像,:以及}等...为什么我的if语句没有过滤掉特殊字符

我在这里找不到什么东西?

3 个答案:

答案 0 :(得分:1)

我认为你想要这个(使用String.Contains方法):

List<string> text = results.Where(key => !key.Contains(',') &&
                    !key.Contains('{') && !key.Contains('}') &&
                    !key.Contains(':')).ToList();

textList个字符串,没有特殊字符。

答案 1 :(得分:0)

将或更改为&amp;&amp;将是一个良好的开端!

if (key != "," && key != "{" && key != "}" && key != ":")

答案 2 :(得分:0)

您需要使用AND(&amp;&amp;)运算符而不是OR(||)。因为你正在使用|| ,其中一个总是匹配,并返回true。因此,密钥被添加。