我想将Dictionary转换为C#中的数组。该数组应采用以下格式:
string[] array = {"key1=value1","key2=value2","key1=value1"}
如何有效地做到这一点?
答案 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
方法遍历字典中的每一对,将给定的委托应用于每对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();