从ArrayList保存和恢复值

时间:2012-07-24 16:54:15

标签: c# store

我在运行时将一些字符串值存储在数组列表中。当应用程序关闭时,我想将数组列表中的数据存储在另一个位置,这样我就可以在下次启动应用程序时打开并检索数据。有哪些方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用ReadingWriting来自/到文件或将值存储在Windows注册表中。 对于从/到文件的读/写使用:

StreamReader sr = new StreamReader(@"C:/store.dll"); //for reading
StreamWriter sw = new StreamWriter(@"C:/store.dll"); //for writing

这是基本的。以下是两篇很棒的文章:

  1. Reding from files
  2. Writing to files
  3. 我用它来存储一个简单游戏的高分。 :)

    Here是一个使用Windows注册表的好教程。

答案 1 :(得分:0)

你可以Serialize ArrayList并将其写入磁盘,然后加载文件并将Deserialize加载到对象:

    public static XDocument Serialize<T>(T objectIn, Type[] extraTypes)
    {
        try
        {
            var target = new XDocument();
            XmlSerializer s = extraTypes != null ? new XmlSerializer(objectIn.GetType(), extraTypes) : new XmlSerializer(objectIn.GetType());
            s = extraTypes != null
                ? new XmlSerializer(objectIn.GetType(), extraTypes)
                : new XmlSerializer(objectIn.GetType());

            var writer = target.CreateWriter();

            s.Serialize(writer, objectIn);

            writer.Close();
            return target;
        }
        catch (Exception ex)
        {
            throw new Exception(string.Format("Could not serialize object: {0}", ex.Message));
        }
    }

    public static T Deserialize<T>(XDocument xDocument, string defaultNamespace)
    {
        XmlSerializer s = new XmlSerializer(typeof(T), defaultNamespace);

        T result = (T)s.Deserialize(xDocument.CreateReader());

        return result;
    }