2012-10-25 25 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; 
} 
相关问题