我想在C#中将一个字典转换成数组。 数组应采用以下格式:
如何有效地做到这一点?
string[] array = {"key1=value1","key2=value2","key1=value1"}
如何有效地做到这一点?
string[] array = dictionary.Select(pair => string.Format("{0}={1}",
pair.Key, pair.Value))
.ToArray();
IDictionary<TKey, TValue>
实现了 IEnumerable<KeyValuePair<TKey, TValue>>
的特性:
Select
方法循环遍历字典中的每一对键值对,并对每对键值对应用给定的委托。string.Format
将一对键值对转换为一个字符串。ToArray
调用将序列转换为一个数组。如果这是您第一次见到LINQ,我强烈建议您更加深入地了解它。它是处理数据的一种神奇方式。
在C# 6中,可以使用插值字符串文本替换string.Format
代码,使其更加紧凑:
string[] array = dictionary.Select(pair => $"{pair.Key}={pair.Value}")
.ToArray();
string[] array = dictionary
.Select(kvp => string.Format("{0}={1}", kvp.Key, kvp.Value))
.ToArray();