我的C#代码用于存储城市:
if (!setting.Contains("CityDetail"))
{
setting.Add("CityDetail", cityname);
//MessageBox.Show(cityname + " is successfully added in the favorites");
}
else
{
cityname = (string)setting["CityDetail"];
//MessageBox.Show(cityname + " is allready added in the favorites");
}
//setting.Save();
答案 0 :(得分:2)
看起来您正在尝试在Phone中保存城市列表,如果是这种情况,则建议您选择本地SQL数据库或 XML 。这样,您可以在应用中使用任何类型的持久数据。它可能是一个城市列表或一些复杂的对象。
要了解更多信息,请参阅: Local SQL Database和Read and Save XML Files。
如果您需要在隔离存储设置中保存(由于一些不可避免的原因),那么您需要将key
部分key-value
对更改为动态值(比如city1,city2,city3 ....)
setting.Add("city1", city1);
以后检索所有可以使用的城市循环,例如
for(int i=0; i<totalCities ; i++)
{
//prepare key value
String cityNumber = "city" + i;
String cityName = settings[cityNumber].ToString();
//here you get your city name Add it to a list or Array
}
请注意,您需要在应用程序设置中存储城市数量并更新它们并将其分配给totalCities
。
修改强>
将城市数量保存到应用设置(例如“totalCities”): 每次添加城市时,都要更新像这样的城市数量
void Update()
{
int presentCities;
//Retrieve present number of cities
presentCities = (string)setting["totalCities"];
//Save updated valu to application setting
Add.Settings("totalCities", presentCities + 1);
}
要检索只使用(int)setting["totalCities"]
答案 1 :(得分:1)
隔离存储设置实际上是通用字典的实现。它包含键值对,集合中的所有键必须是唯一的(就像字典一样)。我认为你想要存储多个城市名称。您将需要使用多个密钥,
setting.Add("City1", city1);
setting.Add("City2", city2);
setting.Add("City3", city3);
或者您可以将数组存储在一个键下:
setting.Add("Cities", new string[] { city1, city2, city3 });
不确定哪个更合适,因为在你的问题中并不完全清楚。