Кодирование строки в виде целого числа .NET - PullRequest
0 голосов
/ 13 июня 2010

У меня есть строка, которую я хотел бы представить уникальным образом как целое число.

Например: A3FJEI = 34950140

Как мне написать метод EncodeAsInteger (string). Я понимаю, что количество символов в строке значительно увеличит целое число, заставив значение стать длинным, а не целым числом.

Поскольку мне нужно, чтобы значение было целым числом, мне не нужно, чтобы числовое представление было полностью уникальным для строки.

Может быть, я смогу выполнить поиск по всем символам строки и суммировать числовой код клавиши этого символа.

Ответы [ 2 ]

3 голосов
/ 13 июня 2010

Если это ваши требования:

  1. Некоторая строка & rarr; целочисленное отображение.
  2. Целые числа не должны быть уникальными.

Тогда вам повезло, потому что это именно то, что делает метод GetHashCode()! На странице MSDN приведены некоторые примеры хэш-кодов. Обратите внимание, что они абсолютно произвольны и могут измениться в будущих версиях CLR.

Хеш-код для "": 0x00001505, 5381
Хеш-код для «а»: 0x0002B5C4, 177604
Хеш-код для "ab": 0x00596E26, 5860902
Хеш-код для «abc»: 0x0B873285, 193409669
Хеш-код для «abd»: 0x0B873282, 193409666
Хеш-код для «abe»: 0x0B873283, 193409667
Хеш-код для "abcdef": 0x4DDB4BE2, 1306217442
Хеш-код для "abcdeg": 0x4DDB4BE3, 1306217443
Хеш-код для "abcdeh": 0x4DDB4BEC, 1306217452
Хеш-код для "abcdei": 0x4DDB4BED, 1306217453
Хеш-код для "Abcdeg": 0x941C4FC3, -1810083901
Хеш-код для "Abcdeh": 0x941C4FCC, -1810083892
Хеш-код для "Abcdei": 0x941C4FCD, -1810083891

0 голосов
/ 13 июня 2010
    protected int EncodeStringAsInt(string value)
    {
        return value.ToCharArray().Sum(c => Convert.ToInt32(c));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...