Как игнорировать регистр в C # при поиске - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть этот код, который выполняет поиск в списке и возвращает заголовок, если он соответствует поисковому слову, но в настоящее время, если я пытаюсь найти «Тест», он не возвращает результат. Как и в списке, это «тест».

Пожалуйста, помогите.

try
{
    objCurrentWeb = SPContext.Current.Web;
    objSSList = objCurrentWeb.Lists["Sales Materials"];

    foreach (SPListItem objSSListItem in objSSList.Items)
    {
        if (Convert.ToString(objSSListItem["Title"]).Contains(searchWord))
        {
            resultLabel.Text = objSSListItem["Title"].ToString();
        }
    }
}
catch (Exception ex)
{
    resultLabel.Text = ex.Message;
}

Ответы [ 5 ]

9 голосов
/ 06 ноября 2011

Вы можете проверить, содержится ли строка в другом, используя IndexOf, затем вы можете указать метод StringComparison и сказать ему игнорировать регистр чувствительности.

(Convert.ToString(objSSListItem["Title"])
    .IndexOf(searchWord, StringComparison.InvariantCultureIgnoreCase)) >= 0

Чтобы он выглядел лучше и легчепозвонить, поставить его как метод расширения

public static class StringExtender
{
    public static bool Contains(this string s, string str, StringComparison comparer)
    {
        return s.IndexOf(str, comparer) >= 0;
    }
}
4 голосов
/ 06 ноября 2011
Convert.ToString(objSSListItem["Title"]).ToUpper().Contains(searchWord.ToUpper())

или

ToLower()

оба будут работать.

3 голосов
/ 06 ноября 2011

другой вариант использует Регулярные выражения

Regex pattern = new Regex("Arch",RegexOptions.IgnoreCase);
if (pattern.IsMatch("string to search"))
    Console.WriteLine("Match found");
0 голосов
/ 06 ноября 2011

Вы можете написать свой собственный компаратор!(Просто реализуйте интерфейс IComparer!)

Больше способов сделать это?

0 голосов
/ 06 ноября 2011
 if (Convert.ToString(objSSListItem["Title"]).Contains(searchWord, StringComparer.OrdinalIgnoreCase ))

попробуйте, следует игнорировать регистр

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...