正在记录哈希表属性
本文关键字:属性 哈希表 记录 | 更新日期: 2023-09-27 18:00:42
我有一个Hashtable
,我正在尝试记录它的值。CCD_ 2的名称是"props"。我的代码如下:
Dictionary<string, string> keyPairs = new Dictionary<string, string>();
foreach (KeyValuePair<string, string> items in props)
{
keyPairs.Add(items.Key, items.Value);
}
Logging.Instance.WriteInformation(string.Format("Key: {0} 't Value: {1}", keyPairs.Keys, keyPairs.Values));
然而,这会在运行时产生InvalidCastException
。
有没有一种更容易/更明智的方法来记录键/值对?理想情况下,输出看起来是这样的:
key1 value1
key2 value2
key3 value3
等等。
另外,在调试中,异常似乎正好发生在foreach循环的开头。我也尝试将其设置为KeyValuePair<string, object>
,但我得到了相同的InvalidCastException
这可能与KeyValuePair
在System.Collections.Generic内和Hashtable
在System.Collections内有关吗?
您可以使用循环,或者,如果您想要一行:
var allPairs = string.Join(Environment.NewLine,
keyPairs.Select(kvp => string.Format("Key: {0} 't Value: {1}", kvp.Key, kvp.Value)));
Logging.Instance.WriteInformation(allPairs);
当然,只需循环:
for (var entry : keyPairs)
{
Logging.Instance.WriteInformation(string.Format("Key: {0} 't Value: {1}",
entry.Key, entry.Value);
}
它只有几行——如果你在多个地方需要它,你可以很容易地把它放在一个方法中。
循环时记录日志。
Dictionary<string, string> keyPairs = new Dictionary<string, string>();
foreach (KeyValuePair<string, string> items in props)
{
keyPairs.Add(items.Key, items.Value);
Logging.Instance.WriteInformation(string.Format("Key: {0} 't Value: {1}", items.Key, items.Value));
}