2013-08-07 40 views
1

我有這樣的字符串工作:字符串字典,然後再返回

Norway, true; Sweden, false; England, null; Denmark, false; 

我試圖讓成Dictionary<string, bool?>,所以我可以使用它,刪除項目,比較反對其他的東西。完成後,我想將字典轉換回類似的字符串並保存。

任何想法?

+4

你碰上一個具體問題?向我們展示一些代碼。 – Artless

+1

您是否在將它獲取到字典或字典時遇到麻煩?他們不是真的是同樣的問題...... – Chris

+6

「有什麼想法嗎?」:是的,很多。我們只希望您儘可能少地嘗試解決問題,並在必要時發佈您遇到的特定問題。 SO不是「請爲我寫代碼」問題的網站。如果您需要更多信息,請諮詢[常見問題]和[問]網頁,以及http://whathaveyoutried.com。 –

回答

6

您可以將這種使用方法Split和LINQ to詞典:

var dict = str.Split(';') 
    .Select(s => s.Split(',')) 
    .ToDictionary(
     p => p[0].Trim() 
    , p => p[1].Trim().Equals("null") ? null : (bool?)(bool.Parse(p[1].Trim())) 
    ); 

轉換回就更簡單了:

var res = string.Join("; ", dict.Select(
    p => string.Format(
     "{0}, {1}" 
    , p.Key 
    , p.Value.HasValue ? p.Value.ToString().ToLowerCase() : "null" 
    ) 
)); 
+0

'; 「null」'應該是':「null」' – xanatos

+0

@xanatos謝謝! – dasblinkenlight

+0

同時在分割字符串值時添加'StringSplitOptions.RemoveEmptyEntries'分割選項,並且'ToLowerCase()'必須爲'ToLower()' –

相關問題