Возникли проблемы с IgnoreCase

1

Привет, у меня возникли проблемы с установкой IgnoreCase на эти коды

Console.WriteLine("Select a seat that you want to ocupy");
            string UserInput = Console.ReadLine();
            //replacing array values with X
            for (int row = Arr.GetLowerBound(0); row <= Arr.GetUpperBound(0); ++row)
            {
                for (int column = Arr.GetLowerBound(1); column <= Arr.GetUpperBound(1); ++column)                    
                    if (Arr[row, column].Contains(UserInput))                       
                        {
                            Arr[row, column] = " X ";
                        }                                                                  
            }

Я заменяю значение 2d массива на "X" через UserInput. Здесь мой массив

string[,] Arr = new string[,]
{{"A1" , " A2" , " A3" , " A4" , " A5"},
{"B1" , " B2" , " B3" , " B4" , " B5"}};
  • 0
    пожалуйста, объясните немного больше, где вы разместили этот код и какое исключение вы получили
  • 0
    я пытаюсь поставить IgnoreCase в этой строке, если (Arr [строка, столбец] .Contains (UserInput))
Показать ещё 3 комментария
Теги:
multidimensional-array
ignore-case

2 ответа

2
Лучший ответ

String.Contains не имеет возможности указывать сравнение культуры или случая. Из-за этого вы, вероятно, захотите использовать ToLowerInvariant.

Например:

string UserInput = Console.ReadLine().ToLowerInvariant();

...

if (Arr[row, column].ToLowerInvariant().Contains(UserInput))
1

Вы должны использовать это вместо этого:

Arr[row, column].Contains(UserInput.ToUpper())

Использование ToUpper() всегда будет сравнивать верхнюю регистрацию ввода независимо от ее случая. Просто убедитесь, что массив указан так, как вы упомянули "ie all upper upper"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню