分離ストレージは、キーと値のペアを使用してデータを保存します。
たとえば、次のようにします。
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 保存方式では、1 つのキーに対して 1 つの値しか存在できない」ということです。
単一のキーに対して複数の値を保存するには、次のようにします。
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ライブラリが必要です。