2012-10-25 59 views
0

我有一個這樣的字符串:在.net中獲取關鍵值對的內置方式?

「MyPropery =價值」

是否有這個轉換爲可用keyValuePair(或類似物體)的快捷方式(使用內置的.NET)?

一個解決方案是使用拆分,但我正在尋找比項目列表更具體的內容,因爲只有2個鍵+值存在。

在此先感謝。

+0

你在哪裏得到這個字符串?你能舉一個更完整的例子嗎? – Oded

+0

如果有我從來沒有發現它寫了一個NamedValues類隱藏字典 –

回答

2

手動分割他們,他們堅持一個Dictionary<String, String>

static void Main(string[] args) 
{ 
    var input = @"Key1=Value1 
        Key2=Value2 
        Key3=Value3=Value4 
        FooBar"; 

    var result = CreateKeyValuePairs(input); 

    foreach (var kvp in result) 
    { 
     Console.WriteLine("{0} = {1}", kvp.Key, kvp.Value); 
    } 

    // Access specific item by key: 
    Console.WriteLine(result["Key2"]); 
} 

private static Dictionary<String, String> CreateKeyValuePairs(string input) 
{ 
    var result = new Dictionary<String, String>(); 

    foreach (var line in input.Split('\n')) 
    { 
     var kvp = line.Trim(); 
     if (!String.IsNullOrEmpty(kvp)) 
     { 
      int equals = kvp.IndexOf('='); 
      if (equals > 0) 
      { 
       var key = kvp.Substring(0, equals); 
       var value = kvp.Substring(equals + 1); 

       // You might want to trim the key and value 
       result.Add(key, value); 
      } 
      else 
      { 
       // Invalid key/value-pair 
      } 
     } 
    } 

    return result; 
} 
相關問題