String.Equals() не работает должным образомC#

Место общения программистов C#
Anonymous
String.Equals() не работает должным образом

Сообщение Anonymous »

Я использую LINQ для поиска в одной из моих таблиц Entity Framework и нахожу «группу» по имени. Имя представляет собой строку и выглядит как Unicode (говорит, что оно находится в edmx). У меня есть метод GetGroup(), и я передаю имя для поиска. Выполняя отладку кода, в моей базе данных уже есть группа с именем «Тест». Когда я передаю группу с именем «TEST», я ожидаю, что она вернет «Test», который уже был в базе данных. Он по какой-то причине не находит «Тест» и думает, что «ТЕСТ» не существует. Вот мой запрос, я не понимаю, почему он не работает. Пожалуйста, помогите.

"имя" — это имя группы. Кажется, мой .Equals работает только в том случае, если gr.Name и имя совпадают. Если в одной из двух строк один символ является заглавным, то .Equals не работает. Я пытался использовать InvariantCultureIgnoreCase, но это, похоже, не помогло. Если кто-то спросит, MyLeagueId и LeagueId всегда будут совпадать, база данных настроена так, что может быть группа с другим идентификатором лиги. Я не думаю, что это проблема.

Group g = (from gr in this.DatabaseConnection.Groups
where gr.Name.Equals(name, StringComparison.OrdinalIgnoreCase) &&
gr.LeagueId == this.MyLeagueId
select gr).FirstOrDefault();


Подробнее здесь: https://stackoverflow.com/questions/508 ... s-intended

Вернуться в «C#»