如何在隔离存储设置中存储字符串?

时间:2012-09-04 10:14:13

标签: windows-phone-7 isolatedstorage

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

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

2 个答案:

答案 0 :(得分:2)

看起来您正在尝试在Phone中保存城市列表,如果是这种情况,则建议您选择本地SQL数据库 XML 。这样,您可以在应用中使用任何类型的持久数据。它可能是一个城市列表或一些复杂的对象。

要了解更多信息,请参阅: Local SQL DatabaseRead 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 });

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