C# Foreach循环-长字符串的性能
我在C#应用程序中面临性能问题。问题是一个相当长的基于字符串的64位编码,但不是普通的。偶数字符必须向上移动5个字符,奇数字符向下移动5个字符,才能创建可读的base64字符串。这是我的密码:C# Foreach循环-长字符串的性能,c#,performance,foreach,base64,C#,Performance,Foreach,Base64,我在C#应用程序中面临性能问题。问题是一个相当长的基于字符串的64位编码,但不是普通的。偶数字符必须向上移动5个字符,奇数字符向下移动5个字符,才能创建可读的base64字符串。这是我的密码: string b64stock; // <- long one int b = 0; string b64readable = ""; foreach (char c in b64Stock) { if ((b % 2) == 0) {
string b64stock; // <- long one
int b = 0;
string b64readable = "";
foreach (char c in b64Stock)
{
if ((b % 2) == 0)
{
int asciichar = (int)c;
asciichar += 5;
b64readable += (char)asciichar;
}
else
{
int asciichar = (int)c;
asciichar -= 5;
b64readable += (char)asciichar;
}
b++;
}
字符串b64stock;// 使用StringBuilder
而不是字符串:
string b64stock; // <- long one
int b = 0;
StringBuilder sb = new StringBuilder(b64Stock.Length);
foreach (char c in b64Stock)
{
int asciiChar = (int)c;
if ((b % 2) == 0)
{
asciichar += 5;
}
else
{
asciichar -= 5;
}
sb.Append((char)asciichar);
b++;
}
string b64readable = sb.ToString();
字符串b64stock;// 使用StringBuilder
而不是字符串:
string b64stock; // <- long one
int b = 0;
StringBuilder sb = new StringBuilder(b64Stock.Length);
foreach (char c in b64Stock)
{
int asciiChar = (int)c;
if ((b % 2) == 0)
{
asciichar += 5;
}
else
{
asciichar -= 5;
}
sb.Append((char)asciichar);
b++;
}
string b64readable = sb.ToString();
字符串b64stock;//在ascii代码中添加和删除5如何使base64代码字符串“可读”?o_O@JanDoerrenhaus-这是一种加密。我以这种形式从网络接收到它,我必须移动以使其可转换。在ascii代码中添加和删除5如何使base64代码字符串“可读”?o_O@JanDoerrenhaus-这是一种加密。我从网络上以这种形式接收到它,我必须移动它,使其可转换。现在需要2秒钟。谢谢你,先生!这将极大地提高性能,在循环中有一些空间来收紧代码,但这不需要,编译器可能会为您完成。现在需要2秒钟。谢谢你,先生!这将极大地提高性能,在循环中有一些空间来收紧代码,但这不需要,编译器可能会为您完成。