将Dictionary <string,string>转换为数组</string,string>

时间:2011-06-08 07:01:41

标签: .net c#-3.0

我想将Dictionary转换为C#中的数组。该数组应采用以下格式:

string[] array = {"key1=value1","key2=value2","key1=value1"}

如何有效地做到这一点?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:4)

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