序列化。如何将多个列表序列化为一个文件?

Serilization. How to serialize multiple lists into one file?

我可以将一个 sheet 推入一个文件,但我如何保存多个 sheet?我如何单独引用它们?

List<string> Lines = new List<string>()
                    {
                       "1",
                       "2",
                       "3"
                    };
        
                    FileStream fsout = new FileStream("peop.dat",
                        FileMode.Create, FileAccess.Write);
                    XmlSerializer serializerout = new XmlSerializer(typeof(List<string>),
                        new Type[] { typeof(string) });
                    serializerout.Serialize(fsout, Lines,);
                    fsout.Close();
        
                    List<string> Lines1 = new List<string>();
                    FileStream fsin = new FileStream("peop.dat", FileMode.Open,
                        FileAccess.Read);
                    XmlSerializer serializerin = new XmlSerializer(typeof(List<string>),
                        new Type[] { typeof(string) });
                    Lines1 = (List<string>)serializerin.Deserialize(fsin);
                    fsin.Close();
List<List<string>> reply = new List<List<string>>();
            
            List<string> Lines = new List<string>()
            {
               "1",
               "2",
               "3"
            };
            List<string> Lines2 = new List<string>()
            {
               "4",
               "5",
               "6"
            };
            reply.Add(Lines);
            reply.Add(Lines2);

            FileStream fsout = new FileStream("peop.dat",
                FileMode.Create, FileAccess.Write);
            XmlSerializer serializerout = new XmlSerializer(typeof(List<List<string>>),
                new Type[] { typeof(string) });
            serializerout.Serialize(fsout, reply);
            fsout.Close();

            List<List<string>> Lines1 = new List<List<string>>();
            FileStream fsin = new FileStream("peop.dat", FileMode.Open,
                FileAccess.Read);
            XmlSerializer serializerin = new XmlSerializer(typeof(List<List<string>>),
                new Type[] { typeof(string) });
            Lines1 = (List<List<string>>)serializerin.Deserialize(fsin);
            fsin.Close();
            Random r = new Random();
            return Lines1[1][r.Next(0, Lines.Count)];

正如@Sinatr 所指出的,最好的方法是列表或列表的字典。如果将其与“Extensions.cs”NuGet 包中的 .Save() 和 .Load() 扩展方法结合使用,代码将变得如此简单:

        using Extensions;

        List<List<string>> data = new List<List<string>>();
        //Populate your lists with data here.
        data.Save("file.txt");
        data.Load("file.txt");