Если вы действительно уверены, что никогда не смотрите более 3 символов алфавита c (A-Z
или a-z
), вы сможете получить ASCII
закодированные байты и преобразование их непосредственно в int
.
public static class StringExtensions
{
public static int ToInt32(this string str)
{
// Checks for null omitted.
var ascii = System.Text.Encoding.ASCII.GetBytes(str);
int result = 0;
for (int i = 0; i < ascii.Length; i++)
{
result = result | (ascii[i] << (i * 8));
}
return result;
}
}
Если это имеет значение, вы можете затем вернуть это int
обратно в string
, который его сгенерировал.
public static class StringExtensions
{
public static string AsciiIntBackToString(this int value)
{
var bytes = BitConverter
.GetBytes(value)
.Where(b => b > 0)
.ToArray();
return System.Text.Encoding.ASCII.GetString(bytes);
}
}