如何将 Span<byte> 转换为 ASCII 字符串?

Tae*_*Kim 1 c#

我可以通过方法将 C# 中的字节数组转换为 ASCII 字符串Encoding.ASCII.Getstring()

但我不知道如何将 Span 转换为 String。

添加了我想使用Span<byte>.ToArray().

Chr*_*rdt 5

Encoding.GetString不接受Span<byte>

但您可以创建一个扩展方法

public static class EncodingExtensions
{
    public static string GetString(this Encoding encoding, Span<byte> source)
    {
        //naive way using ToArray, but possible to improve when needed
        return encoding.GetString(source.ToArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你就可以调用:

var foo = new Span<byte>();
var bar = Encoding.ASCII.GetString(foo);
Run Code Online (Sandbox Code Playgroud)

  • 同时添加了 GetString(ReadOnlySpan&lt;byte&gt; bytes)。 (3认同)