【问题标题】:How to add (concatenate) two Google.Protobuf.ByteStrings? C#如何添加(连接)两个 Google.Protobuf.ByteStrings? C#
【发布时间】:2022-08-02 21:38:13
【问题描述】:

我还没有找到在谷歌文档中添加两个字节串的方法。我试图将它们转换为字符串,连接,而不是转换回来。但它卡在转换回 ByteString 上。

if (someList.Count > 3)
{
    var bigString = \"\";
    for (int i = 0; i < someList.Count; i++)
    {
        string partString= someList.ElementAt(i).ToBase64();
        bigString += partString;
        Logger.Write($\"{i}\");
    }
    Logger.Write(\"here\");
    var chunk = ByteString.FromBase64(bigString);
    Logger.Write(\"here2\");
    SomeFunc(chunk);
    someList.Clear();
}

它得到“here”,但永远不会到“here2”。

    标签: c# protocol-buffers


    【解决方案1】:

    我肯定会不是建议转换为 base64 并返回 - 没有必要。

    看起来您实际上并没有尝试连接ByteStrings,但一些任意数字。我建议将它们全部写入MemoryStream,然后从中创建一个新的ByteString

    using var tempStream = new MemoryStream();
    foreach (var byteString in someList)
    {
        byteString.WriteTo(tempStream);
    }
    tempStream.Position = 0;
    var combinedString = ByteString.FromStream(tempStream);
    

    【讨论】:

      猜你喜欢
      • 2021-05-28
      • 2016-03-01
      • 2011-03-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多