将一个Dictionary<string,string>转换为数组。

3
我想在C#中将一个字典转换成数组。 数组应采用以下格式:
string[] array = {"key1=value1","key2=value2","key1=value1"}

如何有效地做到这一点?
2个回答

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表达式指定的委托,使用string.Format将一对键值对转换为一个字符串。
  • ToArray调用将序列转换为一个数组。

如果这是您第一次见到LINQ,我强烈建议您更加深入地了解它。它是处理数据的一种神奇方式。

在C# 6中,可以使用插值字符串文本替换string.Format代码,使其更加紧凑:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接