在 IDictionary 实例上使用 foreach 循环来创建预期的字符串
IDictionary 具有 Keys 和 Values 属性,但您可以通过使用返回 DictionaryEntry 的 GetEnumerator 的这种扩展方法来实现您的目标:
using System.Collections;
static public class IDictionaryHelper
{
static public string ToStringFormatted(this IDictionary dictionary,
char separator = ';')
{
string result = "";
foreach (DictionaryEntry item in dictionary)
result += $"{item.Key.ToString()}={item.Value.ToString()}{separator}";
return result.TrimEnd(separator);
}
}
测试
using System.Collections.Generic;
IDictionary myDictionary = new Dictionary<string, int>();
myDictionary.Add("a", 1);
myDictionary.Add("b", 2);
myDictionary.Add("c", 3);
Console.WriteLine(myDictionary.ToStringFormatted());
Fiddle Snippet
输出
a=1;b=2;c=3
如果需要解析大型集合,可以使用 StringBuilder
using System.Collections;
using System.Text;
static public string ToStringFormatted(this IDictionary dictionary, char separator = ';')
{
var builder = new StringBuilder();
foreach ( DictionaryEntry item in dictionary )
builder.Append($"{item.Key.ToString()}={item.Value.ToString()}{separator}");
return builder.ToString().TrimEnd(separator);
}
如果您想获取键和值列表
var keys = dictionary.Keys;
var values = dictionary.Values;
var listKeys = new List<object>();
var listValues = new List<object>();
foreach ( var item in keys )
listKeys.Add(item);
foreach ( var item in values )
listValues.Add(item);