Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Foreach循环-长字符串的性能_C#_Performance_Foreach_Base64 - Fatal编程技术网

C# Foreach循环-长字符串的性能

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) {

我在C#应用程序中面临性能问题。问题是一个相当长的基于字符串的64位编码,但不是普通的。偶数字符必须向上移动5个字符,奇数字符向下移动5个字符,才能创建可读的base64字符串。这是我的密码:

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秒钟。谢谢你,先生!这将极大地提高性能,在循环中有一些空间来收紧代码,但这不需要,编译器可能会为您完成。