隔离存储使用键值对来保存数据。
因此,例如,如果您这样做:
if (!setting.Contains("CityDetail"))
{
setting.Add("CityDetail", "abc");
}
else
{
setting["CityDetail"] = "abc";
}
setting.Save();
所以在这样做之后,键- CityDetail的值是abc。
在此之后,如果您这样做:
if (!setting.Contains("CityDetail"))
{
setting.Add("CityDetail", "def");
}
else
{
setting["CityDetail"] = "def";
}
setting.Save();
然后,键CityDetail的值将被替换,新值将是def。
本质是“在Key-Value存储方式中,一个key只能有一个value”。
要针对单个键保存多个值,您可以执行以下操作:
void addCityName(string cityName)
{
List<string> existingList = getCityNames();
if(existingList==null)
{
existingList = new List<string>();
existingList.Add(cityName);
}
string json = JsonConvert.SerializeObject(exitingList);
if(!IsolatedStorageSettings.ApplicationSettings.Contains("CityDetails"))
{
IsolatedStorageSettings.ApplicationSettings.Add("CityDetails",json);
}
else
{
IsolatedStorageSettings.ApplicationSettings["CityDetails"] = json;
}
}
List<string> getCityNames()
{
string json = IsolatedStorageSettings.ApplicationSettings["CityDetails"] as string;
if(json == null)
return null;
JArray arr = JArray.parse(json);
List<string> list = new List();
for(int i=0; i < arr.length; i++)
{
list.add(arr[i].toString());
}
return list;
}
为此,您需要Json.Net库。