将List<string>转换为byte[]

19

如何将列表转换为字节数组。

我认为可能有一些聪明的LINQ选项,但不确定例如/List.ForEach


3
一个简单的for循环有何不妥? - Security Hound
对于列表中的每个字符串,使用一个byte[],还是使用包含列表中所有字符串的单个byte[]? - Viv
2个回答

41

取决于您要使用哪种编码将 string 转换为 byte[],但这里是ASCII的示例。它可以替换为几乎任何编码类型

List<string> data = ...
byte[] dataAsBytes = data
  .SelectMany(s => Text.Encoding.ASCII.GetBytes(s))
  .ToArray();

如果您想为每个项使用新行,请使用.GetBytes(s + Environment.NewLine) - Maulik

0

通过简单的foreach循环:

(伪代码)

    List<byte[]> bytes = new List<byte[]>();
    ForEach string el in somelist
        {
           byte[] arr;
           System.Text.UTF8Encoding  encoding=new System.Text.UTF8Encoding();
           arr = encoding.GetBytes(el);
           bytes.add(arr);
        }

2
这将给你一个 List<byte[]>,但是 OP 要求一个 byte[] - JaredPar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接