繁体   English   中英

如何在 Xamarin Forms 中存储列表?

[英]How can I store lists in Xamarin Forms?

有没有办法使用 Xamarin Forms 本地存储列表?

Xamarin 设置插件已过时且不再维护。 其功能已纳入 Xamarin.Essentials,建议继续使用。

  1. 添加Newtonsoft.Json NuGet 包Xamarin.Essentials NuGet 包

  2. 利用Newtonsoft.Json.JsonConvertList<T>序列化/反序列化到/从string并使用Xamarin.Essentials.Preferences保存/检索它

using System;
using Newtonsoft.Json;
using Xamarin.Essentials;

namespace YourNamespace
{
    static class Preferences
    {
        public static List<string> SavedList
        {
            get
            {
                var savedList = Deserialize<List<string>>(Preferences.Get(nameof(SavedList), null));
                return savedList ?? new List<string>();
            }
            set
            {
                var serializedList = Serialize(value);
                Preferences.Set(nameof(SavedList), serializedList);
            }
        }

        static T Deserialize<T>(string serializedObject) => JsonConvert.DeserializeObject<T>(serializedObject);

        static string Serialize<T>(T objectToSerialize) => JsonConvert.SerializeObject(objectToSerialize);
    }
}
  1. 从代码中的任何位置引用Preferences.SavedList
void AddToList(string text)
{
    var savedList = new List<string>(Preferences.SavedList);

    savedList.Add(text);

    Preferences.SavedList = savedList;
}

在设置插件中,您可以以键值方式存储,因此您不能直接存储列表。 一种解决方法是,您可以将您的列表序列化为一个 json 字符串,然后您可以使用一个键来存储它。 当您需要返回列表时,您可以使用密钥获取该 json 字符串并将其反序列化为原始格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM