StartsWith和数组无法正常使用空格

时间:2012-05-28 07:58:49

标签: c#

_comboBoxItems array

    [0] = "01 01010304"
    [0] = "01 01230304"
    [0] = "01 01010784"
    [0] = "01 01135404"

typedSoFar = "010"

    if (_comboBoxItems[i].StartsWith(typedSoFar, StringComparison.CurrentCultureIgnoreCase))
    {
        match = _comboBoxItems[i];

        break;
    }

但如果永远不是真的。为什么?例如,010是01 01010304的一部分。可以是问题StringComparison.CurrentCultureIgnoreCase?

3 个答案:

答案 0 :(得分:2)

它永远不会是真的,因为你的元素都不以010开头.StartsWith()只查看从索引0开始的子字符串。

您应该使用String.Contains()代替。

答案 1 :(得分:1)

使用startswith(),它将始终匹配string-input的开始。使用Contains()在字符串输入

中的任何位置搜索和匹配子字符串

答案 2 :(得分:0)

如果你确实希望typedSoFar匹配没有空格的字符串的开头,那么使用它:

if (_comboBoxItems[i].StartsWith(typedSoFar.Trim())
{
    match = _comboBoxItems[i];
}

上述内容将与此01 01010304匹配,但不会与此01 11010304匹配。

如果您希望typedSoFar成为字符串的一部分,请使用:

if (_comboBoxItems[i].Contains(typedSoFar)
{
    match = _comboBoxItems[i];
}

*在您的情况下,我没有看到使用StringComparison.CurrentCultureIgnoreCase

的任何目的