序列化。如何将多个列表序列化为一个文件?
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");
我可以将一个 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");