2012-09-04 29 views
0

我存儲多個數據獨立存儲設置,但在那個時候只有一個數據顯示如何計算隔離存儲設置的行數?

我使用的循環,但它不是給完美了把

C#代碼retrive數據是:


    for (int i = 0; i <= IsolatedStorageSettings.ApplicationSettings.Count; i++) 
    { 
     cityname = IsolatedStorageSettings.ApplicationSettings["CityDetail"] as string; 
     ads.Add(new Transaction(cityname)); 
    } 

爲獨立存儲設定保存代碼


if (!setting.Contains("CityDetail")) 
{ 
    setting.Add("CityDetail", cityname); 
} 
else 
{ 
    setting["CityDetail"] = cityname; 
} 
setting.Save(); 
+0

你如何將數據保存到獨立存儲? –

+0

@ Amresh Kumar:請看我編輯的代碼 – MaaN

回答

1

Isolated Storage使用鍵值對保存數據。
因此,例如,如果你這樣做:


if (!setting.Contains("CityDetail")) 
{ 
    setting.Add("CityDetail", "abc"); 
} 
else 
{ 
    setting["CityDetail"] = "abc"; 
} 
setting.Save(); 

所以這樣做後,爲 - CityDetailABC

在此之後,如果你這樣做:


if (!setting.Contains("CityDetail")) 
{ 
    setting.Add("CityDetail", "def"); 
} 
else 
{ 
    setting["CityDetail"] = "def"; 
} 
setting.Save(); 

然後,對於關鍵CityDetail將被取代,新的高清
本質是「在鍵值存儲方法中,一個鍵只能有一個值。」

要保存多個值對單個按鍵,你可以做這樣的事情:


void addCityName(string cityName) 
{ 
    List&ltstring> existingList = getCityNames(); 
     if(existingList==null) 
     { 
      existingList = new List&ltstring>(); 
      existingList.Add(cityName); 
     } 
     string json = JsonConvert.SerializeObject(exitingList); 
     if(!IsolatedStorageSettings.ApplicationSettings.Contains("CityDetails")) 
    { 
     IsolatedStorageSettings.ApplicationSettings.Add("CityDetails",json);  
    } 
    else 
    { 
     IsolatedStorageSettings.ApplicationSettings["CityDetails"] = json; 
    } 
} 

List&ltstring> getCityNames() 
{ 
    string json = IsolatedStorageSettings.ApplicationSettings["CityDetails"] as string; 
    if(json == null) 
     return null; 
    JArray arr = JArray.parse(json); 
     List&ltstring> list = new List(); 
    for(int i=0; i < arr.length; i++) 
    { 
     list.add(arr[i].toString()); 
    } 
    return list; 
} 

爲此,您需要的Json.Net庫。

+0

:是的,這是問題,我的城市名是dynemically來的,所以我如何解決這個問題? – MaaN

+0

@MaaN用可能的解決方案更新了我的代碼 –