C# 如何将字节[]与字符串进行比较?

C# 如何将字节[]与字符串进行比较?,c#,string,bytearray,C#,String,Bytearray,我想将byte[]中的前几个字节与字符串进行比较。如何才能做到这一点?您必须知道字节数组的编码,才能正确比较它们 例如,如果知道字节数组由UTF-8字节组成,则可以从字节数组创建字符串: System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); string s = enc.GetString(originalBytes); System.Text.UTF8Encoding enc = new System.Text.UTF8

我想将byte[]中的前几个字节与字符串进行比较。如何才能做到这一点?

您必须知道字节数组的编码,才能正确比较它们

例如,如果知道字节数组由UTF-8字节组成,则可以从字节数组创建字符串:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string s = enc.GetString(originalBytes);
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
byte[] b = enc.GetBytes(originalString);
现在可以将字符串s与其他字符串进行比较

相反,如果只想比较前几个字节,可以将字符串转换为UTF8字节数组:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string s = enc.GetString(originalBytes);
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
byte[] b = enc.GetBytes(originalString);
现在您可以将字节数组b与其他字节数组进行比较

ASCII、Unicode等还有其他几种编码对象。

使用

byte [] fromString = Encoding.Default.GetBytes("helloworld");

你能举个例子说明你想做什么吗?比较字节而不是字符串不是更有效吗@你认为字符串比较是什么?担心这可能是一个微观优化。我指的是演员阵容,而不是比较。我的坏消息。@Josh-好笑!我一写下我的答案,我就有了和你完全一样的问题!(在我的脑海里,它也有一个“?!”字——不是开玩笑的!)