Задать вопрос
@Andronron

Почему получаю False при сравнение 2-х одинаковых строк?

Всем привет не могу понять причину почему получаю false при сравнение 2х строк . Я уже пробовал и Equals и Contains и == (Мало ли) но все равно Получаю False . В чем причина ? Как это исправить?
var Key = Registry.CurrentUser.OpenSubKey(@"Software\Program");
                var textKey = Key.GetValue("Key")?.ToString();
                Key.Close();

                string keydata = CryptoKey.DecryptStringFromBytes_Aes(textKey, keyForDes, CryptoKey.keybyte);

                var keyDataSplit = keydata.Split('_');

                
                //0697KG5H0AB73R6R8XV46GYMYRFV2EFMEA9SWAJGXP84YAVXZXW0
                string machineAnswer = keyDataSplit[0];

                //0697KG5H0AB73R6R8XV46GYMYRFV2EFMEA9SWAJGXP84YAVXZXW0
                string machineName = new DeviceIdBuilder()
                     .AddMachineName()
                     .AddMacAddress()
                     .ToString();

                //false
                bool machine = machineAnswer.Trim().ToLower() == machineName.Trim().ToLower();
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
WNeZRoS
@WNeZRoS
Всегда можно написать функцию для поиска разницы:
(int, char, char) FindFirstDifference(string a, string b)
{
    var length = Math.Min(a.Length, b.Length);
    for (int i = 0; i < length; i++) 
    {
        if (a[i] != b[i])
            return (i, a[i], b[i]);
    }

    if (a.Length == b.Length)
        return (-1, '\0', '\0');

    return (length, a.Length == length ? '\0' : a[length], b.Length == length ? '\0' : b[length]);
}


В теории могут быть визуально похожие unicode символы, но в вашем случае они просто разные.
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
Ты нас обманываешь, всё работает нормально
63cd5463b4b56510622484.jpeg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы