是的,C#中的ArrayList可以进行序列化。你可以使用System.Runtime.Serialization
命名空间中的BinaryFormatter
类来序列化和反序列化ArrayList对象。以下是一个简单的示例:
using System; using System.Collections.ArrayList; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; class Program { static void Main() { // 创建一个ArrayList对象 ArrayList list = new ArrayList(); list.Add("Apple"); list.Add(123); list.Add(new DateTime(2021, 1, 1)); // 序列化ArrayList对象 IFormatter formatter = new BinaryFormatter(); using (FileStream fileStream = new FileStream("ArrayList.bin", FileMode.Create)) { formatter.Serialize(fileStream, list); } // 反序列化ArrayList对象 using (FileStream fileStream = new FileStream("ArrayList.bin", FileMode.Open)) { ArrayList deserializedList = (ArrayList)formatter.Deserialize(fileStream); Console.WriteLine("Deserialized ArrayList:"); foreach (object item in deserializedList) { Console.WriteLine(item); } } } }
在这个示例中,我们首先创建了一个包含不同类型元素的ArrayList对象。然后,我们使用BinaryFormatter
类将其序列化到名为ArrayList.bin
的文件中。接下来,我们从该文件中反序列化ArrayList对象,并将其内容输出到控制台。