2

嗨,我需要将通用列表转换为字节 [],但我的代码不起作用有人可以给我一些提示吗?

谢谢!

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++;
}
4

3 回答 3

5

这是代码,希望这有帮助

byte[] dataAsBytes = lines.SelectMany(s => Text.Encoding.UTF8.GetBytes(s))
  .ToArray();
于 2012-07-03T10:15:55.130 回答
4

我假设您不想要一个对文件的所有内容进行编码的大数组,因为如果是这种情况,则绝对不需要先拆分成行;那只会让你的工作更难。有鉴于此:

您正在使用一个字节数组,您应该使用一个字节数组数组,如下所示:

byte[][] output = new byte[lines.Count][];

换句话说,output需要有两个维度:它具有与行一样多的项目,并且每个项目本身都是一个数组,具有以 UTF-8 对该行的内容进行编码所需的字节数。

在您对此有所了解之后,还可以考虑使用 LINQ 以获得更简洁的语法:

var lines = /* ... */
var output = lines.Select(l => Encoding.UTF8.GetBytes(l)).ToArray();
于 2012-07-03T10:16:58.033 回答
0
var bytes = File
    .ReadLines(@"path")
    .Select(line => Encoding.UTF8.GetBytes(line));

foreach(var lineBytes in bytes)
{
    //DoStuffz
}
于 2012-07-03T10:19:32.460 回答