Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Bigtagilboss
1 / 1 / 0
Регистрация: 03.06.2020
Сообщений: 172

Почему строка не равна строке, хотя они абсолютно идентичны?

21.11.2022, 13:04. Показов 1659. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
for (i = 1; i <= RowsCount2; i++) 
{ 
    for (j = 1; j <= ColumnsCount2; j++) 
    { 
        if (i > 1 && i % 3 != 0) 
        { 
            if (arrData2[i, j] != arrData2[1, j]))) 
            { 
                Console.Write(arrData2[i, j] + "  "); 
                report[rep1, rep2] = Convert.ToString(arrData2[i, j]); 
            } 
            else 
            { 
                xlSht2.Cells[i, j].AddComment("Не хватает \"" + arrData2[1, j] + "\""); 
                xlSht2.Cells[i, j].Interior.ColorIndex = 6; 
                Console.Write(" null "); 
                prow++; 
            } 
        } 
        else 
        { 
            if (!String.IsNullOrWhiteSpace(Convert.ToString(arrData2[i, j])) && i != 1) 
            { 
                xlSht2.Cells[i, j].AddComment("Необходимо перенести на ячейку выше"); 
                xlSht2.Cells[i, j].Interior.ColorIndex = 3; 
            } 
        } 
        rep2++; 
    } 
    rep2 = 0; 
    if (i > 1 && i % 3 != 0) 
    { 
        rep1++; 
    } 
    Console.WriteLine("---");
}
в условии

C#
1
if (arrData2[i, j] != arrData2[1, j])
идет проверка элементов двумерного массива. Проверяет оно нормально, но когда доходит до определенных ячеек, тогда условие ведет себя странно. Впервые с таким сталкиваюсь, что условие не срабатывает.
Как это выглядит, если подставить вместо массива строки

C#
1
2
if("№ Разм." != "№ Разм.")
{....}
Во время отладки проверял, в условии на данном этапе TRUE. Что делать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2022, 13:04
Ответы с готовыми решениями:

Почему строка, считанная из файла и такая же строка в программе не равны, хотя они, вроде бы, одинаковы?
Есть две строки. MSK=&quot;Москва&quot; и from, считанная из текстовика, через getline Для проверки вывожу эти обе строки, на первый взгляд...

Скопировать значения одной таблицы в другую (они идентичны, но находятся на разных серверах)
Как скопировать значения одной таблицы в другую, при условии, что они идентичны но находятся на разных серверах?

Почему-то нет компонентов в palette, хотя в настройках они есть
Я установил devExpress на delphi 10.4 и, вроде бы, все норм. Но, когда я хотел начать пользоваться компонентами dx.... , то не обнаружил...

32
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:20
Лучший ответ Сообщение было отмечено Bigtagilboss как решение

Решение

Студворк — интернет-сервис помощи студентам
Вот так можно воспроизвести.
Если сравнивать через
C#
1
 a.Equals(b)
,то работает как ожидалось.
Миниатюры
Почему строка не равна строке, хотя они абсолютно идентичны?  
1
 Аватар для Bigtagilboss
1 / 1 / 0
Регистрация: 03.06.2020
Сообщений: 172
21.11.2022, 14:22  [ТС]
Цитата Сообщение от brian778 Посмотреть сообщение
Кодировки разные
Возможно
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:29
Лучший ответ Сообщение было отмечено Bigtagilboss как решение

Решение

Comparisons with boxed value types
1
 Аватар для Bigtagilboss
1 / 1 / 0
Регистрация: 03.06.2020
Сообщений: 172
21.11.2022, 14:30  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Вот так можно воспроизвести.
Если сравнивать через
C#Выделить код
1
 a.Equals(b)
,то работает как ожидалось.
А у меня почему-то такого снизу нет. Может это из-за того, что я подключаюсь к отладке в dll, а не делаю её для основного приложения?
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:32
Лучший ответ Сообщение было отмечено Bigtagilboss как решение

Решение

Bigtagilboss, меню Отладка - Окна - Локальные.
1
 Аватар для Bigtagilboss
1 / 1 / 0
Регистрация: 03.06.2020
Сообщений: 172
21.11.2022, 14:34  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
меню Отладка - Окна - Локальные.
Точно

Спасибо большое
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:39
Тут boxed value types (строки упакованы в object), они через == сравниваются как object'ы, по ссылкам. А ссылки отличаются, хотя содержимое одинаково.

Добавлено через 43 секунды
"Повезло" на такое наткнуться.
1
 Аватар для Bigtagilboss
1 / 1 / 0
Регистрация: 03.06.2020
Сообщений: 172
21.11.2022, 14:41  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
А ссылки отличаются, хотя содержимое одинаково.
Вообще не знал про такое до текущего момента. Спасибо что рассказали, буду знать
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
21.11.2022, 14:44
Цитата Сообщение от Rius Посмотреть сообщение
они через == сравниваются как object'ы, по ссылкам
Пример
Миниатюры
Почему строка не равна строке, хотя они абсолютно идентичны?  
1
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:47
brian778, пример того, что дело может быть в кодировке? В одном документе Excel это маловероятно.

А ещё можно невидимый символ добавить,тот же эффект будет.
1
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
21.11.2022, 14:49
Пример того что 2-а объекта различных при == true отдают
1
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,958
Записей в блоге: 14
21.11.2022, 14:52
brian778, нееее.
S == S2, так как компилятор достаточно умный, чтобы понять их равенство и создать лишь один обьект. Можете убедиться через object.ReferenceEquals(s, s2), что s2 это есть s.
А вот s3 формируется в рантайме и это уже новый объект. Пример такого я выше приводил.
1
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
21.11.2022, 14:55
Был не прав
Миниатюры
Почему строка не равна строке, хотя они абсолютно идентичны?  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2022, 14:55

На другом ПК TheBat! почту принимает, но не отправляет, хотя все настройки идентичны
Гутен морген. Для почты есть выделенный сервак на uh.ua Настроил на одной машине почтовый клиент the Bat на приём\отправку сообщений. ...

Почему в браузере ссылки подчеркнуты, хотя в FrontPage они без подчеркивания?
Всем привет! Помогите убрать подчеркивание ссылок. В frontpage с ссылок я убираю подчеркивание но в браузерах (мазила и гугл) почему-то...

Проверить равна ли строка перевернутой второй строке
Пользователь вводит две строки если первая строка равно перевернутой второй строке то программа говорит YES иначе NO

Дано 5 строк s1 , s2 , s3 , s4 и s5 , на основе условия: если строка s4 равна строке s5 , нужно составить строки s1 и s2
Всем привет! помогите пожалуйста решить несколько задач 9 . Дано 5 строк s1 , s2 , s3 , s4 и s5 , на основе условия: если строка s4...

Строка: Подскажите, как посчитать количество символов фамилии и имени по отдельности если они в одной строке?
Всем доброго времени суток! Подскажите как я могу посчитать количество символов фамилии и имени по отдельности если они в одной строке? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru