在C#中,如何将List <int>序列化为byte []以将其存储在DB字段中?

Mat*_*att 4 c# generics serialization list

在C#中,如何List<int>将a 序列化为a byte[]以将其存储在DB字段中?

我知道如何序列化到磁盘上的文件,但我如何序列化到变量?

这是我如何序列化到磁盘:

            List<int> l = IenumerableofInts.ToList();
            Stream s = File.OpenWrite("file.bin");
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(s, lR);
            s.Close();
Run Code Online (Sandbox Code Playgroud)

我敢肯定它是一样的但我无法绕过它.

Ode*_*ded 8

使用MemoryStream而不是文件流:

Stream s = new MemoryStream();
Run Code Online (Sandbox Code Playgroud)

这会将数据放在s变量中,稍后您可以在应用程序中阅读该变量.

为了从中读取,您需要将其设置Position为0,因此搜索将从流的开头(如果以块读取)开始,或者使用ToArray()它来检索完整的内容.

  • 对于刚接触MemoryStream的人来说,重要的是还要指出在读取之前你必须将Position设置回0.这经常被忽视,导致新的开发人员有些头疼. (4认同)