首页 > 解决方案 > 如何转换 IEnumerable到 C# 中的字节 []?

问题描述

如何在 c# 中转换IEnumerable<string>byte[]c# 中是否有任何选项。可能包含IEnumerable<string>大量数据。在每个字符串之后需要新行

标签: c#asp.net.net.net-core

解决方案


IEnumerable<string> myStrings = new[] { "hello", "world"};
var myBytes = myStrings.SelectMany(s => Encoding.UTF8.GetBytes(s)).ToArray();

这将UTF8用作字节的编码。您可能需要使用不同的编码,具体取决于您之后要对字节执行的操作。

请注意 - 如上所述 - 这不是直接可逆的,因为您丢失了一个string结束和下一个开始的信息。

如果你愿意,你可以NewLine在每个字符串后面加上一个(或任何其他你可以用来分割的标识符)来保持它们分开:

var myBytes = myStrings.Select(s => s + Environment.NewLine)
                       .SelectMany(s => Encoding.UTF8.GetBytes(s)).ToArray();

有关SelectMany查看文档的更多信息。


推荐阅读