如何使搜索栏输入搜索包含大字母和小写字母的字符串而不更改字符串文本

时间:2016-04-02 02:07:39

标签: c# xamarin xamarin.forms

我有一个文字,我希望保持不变,但通过搜索栏即使它是一个大字母或一个小写字母也能找到它们。

我目前在包含我正在搜索的值的字符串上设置ToLower(theDescription,一个字符串)和我的搜索栏textinput ToLower,但问题是我希望文本与大字母和小字母保持不相等不就像现在一切都很小(它有效)但字母应该保持不变。

那么,我该如何调整当前的解决方案"在我的字符串中创建文本theDescription不会将文本更改为所有小写但是以相同的方式使用它,但即使它是大字母或小写字母仍然能够搜索单词。

public StartPage ()
    {
        searchBar.TextChanged += (sender2, e2) => FilterPins(searchBar.Text.ToLower());

        searchBar.SearchButtonPressed += (sender2, e2) => FilterPins(searchBar.Text.ToLower());

    }

这是我通过过滤器搜索的值。

pin.Address = theDescription.ToLower();

我的过滤功能:

private  async void FilterPins (string filter)
    {
        map.Pins.Clear ();

        foreach(Pin p in myPins) {
            if (p.Address.Contains(filter)) {

                map.Pins.Add (p);
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

仅在搜索时更改文本的大小写(删除当前拥有的所有其他ToLower())

// force the search text and the value to be searched into the same case
if (p.Address.ToLower().Contains(filter.ToLower())) {

顺便提一下,你想要的术语是“不区分大小写的”(你不关心案例是否匹配)。如果您关心,该术语是“区分大小写”。