2011-06-08 223 views

回答

4
string[] array = dictionary 
       .Select(kvp => string.Format("{0}={1}", kvp.Key, kvp.Value)) 
       .ToArray(); 
5

LINQ使这很容易:

string[] array = dictionary.Select(pair => string.Format("{0}={1}", 
                 pair.Key, pair.Value)) 
          .ToArray(); 

这需要的是IDictionary<TKey, TValue>实现事实的优点:IEnumerable<KeyValuePair<TKey, TValue>>

  • Select方法循环每对在字典中,运用给定的委托每一对
  • 我们的代表(用lambda expression指定)将一对转换为字符串,使用string.Format
  • ToArray调用序列转换到一个数组

如果这是你已经看到LINQ的第一次,我强烈建议你看它多。这是一种处理数据的好方法。

在C#6,string.Format代码可以与经内插字符串文字来代替,这使它更紧凑:

string[] array = dictionary.Select(pair => $"{pair.Key}={pair.Value}") 
          .ToArray(); 
相关问题