mirror of
https://github.com/aaru-dps/Aaru.Checksums.git
synced 2025-12-16 19:24:29 +00:00
Optimize C to string converter in SpamSum context.
This commit is contained in:
@@ -421,16 +421,18 @@ namespace DiscImageChef.Checksums
|
|||||||
// Converts an ASCII null-terminated string to .NET string
|
// Converts an ASCII null-terminated string to .NET string
|
||||||
static string CToString(byte[] cString)
|
static string CToString(byte[] cString)
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder();
|
int count = 0;
|
||||||
|
|
||||||
for(int i = 0; i < cString.Length; i++)
|
// ReSharper disable once LoopCanBeConvertedToQuery
|
||||||
|
// LINQ is six times slower
|
||||||
|
foreach(byte c in cString)
|
||||||
{
|
{
|
||||||
if(cString[i] == 0) break;
|
if(c == 0) break;
|
||||||
|
|
||||||
sb.Append(Encoding.ASCII.GetString(cString, i, 1));
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.ToString();
|
return Encoding.ASCII.GetString(cString, 0, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct RollState
|
struct RollState
|
||||||
|
|||||||
Reference in New Issue
Block a user