Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# - Fatal编程技术网

C# foreach语句中要字符串的字节数

C# foreach语句中要字符串的字节数,c#,C#,我正在尝试编写一种方法,通过在每个字符的字节值中添加2来对消息进行置乱,然后打印新消息。到目前为止,我得到的是: public static void MsgToCode(string value) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(value); foreach (var item in bytes) { byte b2= item;

我正在尝试编写一种方法,通过在每个字符的字节值中添加2来对消息进行置乱,然后打印新消息。到目前为止,我得到的是:

public static void MsgToCode(string value)
    {

        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(value);
        foreach (var item in bytes)
        {
            byte b2= item;
            b2 = (byte)(b2 + 2);


        }
        Console.ReadLine();
    }

我尝试在foreach语句中使用b2.ToString。但它不起作用。我做错了什么?

这就是你要找的吗

public static void MsgToCode(string value)
{

    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(value);
    var sb = new StringBuilder();
    foreach (var item in bytes)
    {
        sb.Append((Convert.ToInt32(item) + 2));
    }
    Console.WriteLine(sb.ToString());
    Console.ReadLine();
}
或者你想要这个

static void Main(string[] args)
{
    MsgToCode("Test");
}

public static void MsgToCode(string value)
{
    var bytes = System.Text.Encoding.UTF8.GetBytes(value);
    var newBytes = new byte[bytes.Length];
    for (int i = 0; i < bytes.Length; i++)
    {
        var newValue = Convert.ToInt32(bytes[i]) + 2;
        if (newValue > 255)
            newValue -= 255;
        newBytes[i] = Convert.ToByte(newValue);
    }
    Console.WriteLine(System.Text.Encoding.UTF8.GetString(newBytes));
    Console.ReadLine();
}
static void Main(字符串[]args)
{
MsgToCode(“测试”);
}
公共静态无效MsgToCode(字符串值)
{
var bytes=System.Text.Encoding.UTF8.GetBytes(值);
var newBytes=新字节[bytes.Length];
for(int i=0;i255)
newValue-=255;
新字节[i]=转换为新字节(newValue);
}
WriteLine(System.Text.Encoding.UTF8.GetString(新字节));
Console.ReadLine();
}

如果尝试将字符(255)+2强制转换为字节,会发生什么?
你可能不得不重新考虑你在这里做什么。如果您只想加密文本,有几个库供您使用

请参见此处:寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。您是否希望在任何时候将其转换回?或者只是为了让它变得毫无意义?
var scramed=System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(value).S‌​选择(b=>(字节)(b+2)).ToArray();var uncombled=System.Text.Encoding.UTF8.GetString(System.Text.Encoding.UTF8.GetBytes(扰码).S‌​elect(b=>(byte)(b-2)).ToArray()我打算稍后将其转换回。我希望能够自己解决这个问题,但我们会看看它是如何发展的。我可能会用某种if声明来解决这个问题。谢谢。今晚晚些时候我会试试。正如其他用户所建议的,有很多库可以对字符串进行加密和解密。因为我相信这就是你想要实现的。