将Generic List <string>转换为byte [] </string>

时间:2012-07-03 10:13:25

标签: c# asp.net bytearray generic-list

您好我需要将通用列表转换为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++;
}

3 个答案:

答案 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
}