首页 > 解决方案 > 如何在 Xamarin Forms 中存储列表?

问题描述

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

标签: c#xamarinxamarin.formsxamarin.androidxamarin.ios

解决方案


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

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

  2. 利用Newtonsoft.Json.JsonConvert序列化/反序列化List<T>to/from astring并使用保存/检索它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;
}


推荐阅读