您好我需要将通用列表转换为byte []但我的代码不起作用 任何人都可以给我一些提示吗?
谢谢!
List<string> lines = inputFile.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).ToList();
byte[] output = new byte[lines.Count];
Encoding enc = Encoding.UTF8;
int i = 0;
foreach (string item in lines)
{
output[i] = enc.GetBytes(item);
i++;
}
答案 0 :(得分:5)
这是代码,希望这有帮助
byte[] dataAsBytes = lines.SelectMany(s => Text.Encoding.UTF8.GetBytes(s))
.ToArray();
答案 1 :(得分:4)
我假设你不想要一个大数组来编码文件的所有内容,因为如果是这样的话,绝对不需要先拆分成行;这只会让你的工作更难。以此作为给定:
你正在使用一个字节数组,你应该使用一个字节数组的 ,如下所示:
byte[][] output = new byte[lines.Count][];
换句话说,output
需要有两个维度:它拥有与行数一样多的项目,并且每个项目本身就是一个数组,其数量与编码该行内容所需的字节数相同在UTF-8中。
在你绕过它之后,考虑使用LINQ以获得更清晰的语法:
var lines = /* ... */
var output = lines.Select(l => Encoding.UTF8.GetBytes(l)).ToArray();
答案 2 :(得分:0)
var bytes = File
.ReadLines(@"path")
.Select(line => Encoding.UTF8.GetBytes(line));
foreach(var lineBytes in bytes)
{
//DoStuffz
}