Windows phone 7 如何在独立存储设置中存储字符串?

Windows phone 7 如何在独立存储设置中存储字符串?,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,我有很多城市的名字。我想把这个城市存储到我的设备数据库中。我使用隔离存储设置,但隔离存储只允许我添加一个城市。如何显示这个城市 我的C#代码用于存储城市信息: if (!setting.Contains("CityDetail")) { setting.Add("CityDetail", cityname); //MessageBox.Show(cityname + " is successfully

我有很多城市的名字。我想把这个城市存储到我的设备数据库中。我使用隔离存储设置,但隔离存储只允许我添加一个城市。如何显示这个城市

我的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();

隔离存储设置实际上是通用字典的实现。它包含键值对,集合中的所有键都必须是唯一的(就像字典一样)。我认为您想要存储多个城市名称。您必须使用多个键

 setting.Add("City1", city1);
 setting.Add("City2", city2);
 setting.Add("City3", city3);
也可以在单个键下存储数组:

 setting.Add("Cities", new string[] { city1, city2, city3 });

不确定哪一个更合适,因为您的问题并不完全清楚。

看起来您正试图在电话中保存城市列表,如果是这样,建议您选择本地SQL数据库或XML。通过这种方式,您可以在应用程序中拥有任何类型的持久数据。它可能是一个城市列表或一些复杂的对象

要了解更多信息,请参阅: 和

如果需要将其保存在独立存储设置中(由于某些不可避免的原因),则需要将
的部分
键值
对更改为某个动态值(例如city1、city2、city3……)

然后检索您可以使用的所有城市,例如

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

}       

要检索,只需使用
(int)设置[“totalCities”]

您能解释一下您想要做什么吗?代码有什么问题(除了有时编写CityDeltai,有时编写CityDetail的错误)@igrali:sry现在查看我编辑的代码并给我答案,我想在我的数据库中添加城市名称,城市名称来自Dynemily,超过两个。现在我想在另一个页面列表视图中显示此城市名称:谢谢,但实际上城市编号不是固定的。此代码适用于三个城市,但当第四个城市出现时什么?以及如何检索此城市bcos我使用retrievecity=IsolatedStorageSettings.ApplicationSettings[“cities”]作为字符串;所以空值是一个数组。它可以容纳任意数量的项目,而不仅仅是3个。@hello ctacke我得到了一个解决方案,感谢您给我的支持:这里您描述字符串cityNumber=“city”+i;那么“city”的值是什么呢?“city”只是一个字符串,因为我们用关键字“city1,city2,…”保存了城市,因此,我们需要使用相同的名称检索它。
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

}       
    void Update()
{    
int presentCities;

//Retrieve present number of cities
presentCities = (string)setting["totalCities"];

//Save updated valu to application setting
Add.Settings("totalCities", presentCities + 1); 

 }