string []。即使文本在数组中,包含也找不到匹配项

时间:2015-01-09 10:53:30

标签: c# arrays string

我已将显示放入我的程序中,并且可以清楚地看到正在搜索的字符串存在。

是否有可能无形'阻止它工作的字符?

    var items = new List<string>(currComponent.Split(new string[] 
    { "\r\n", "\n" }, StringSplitOptions.None));
    string feedback = string.Empty;
                foreach (string i in items)
                {
                    feedback += i + ". ";
                }
                ScriptingObject.WriteLogMessage
                 ("feedback:" + feedback + "<EOF>", true);
   if (items.Contains(attributeDescription))

显示结果显示变量反馈包含短语&#39; Flue&#39;, 但 items.Contains("Flue") 找不到它。

Message: Status message: 2015-01-09 10:36:18 | feedback:_ ,. Boiler Flue Type. 
Boiler make. Boiler Model. Gas Appliance Safety Protector. __.. . <EOF>

Next message: unable to process an Update Location record ...because of error:
item Flue not found .

1 个答案:

答案 0 :(得分:6)

由于items中的字符串不是"Flue""Boiler Flue Type"List.Contains()搜索完全匹配,请记住您正在调用List.Contains()而不是{{1 }}

请注意,有一种更简单的方法可以加入字符串:

String.Contains()

使用LINQ,您可以使用:

string feedback = String.Join(". ", items);

如果您没有明确需要if (items.Any(x => x.Contains(attributeDescription))) { } ,您也可以保留List<string>返回类型(String.Split()),将所有内容放在一起:

string[]