0

我需要在一个文件中打印出来 a HashTable

for没有/foreach循环是否可以做到这一点?就像是:

 Hashtable myHash;

 Logging.traceMessage(Datetime.now, myhash) // I want to have just a single datatime entry in my traceMessage.

我的预期输出是这样的:

'哈希表'

[核心价值]

比萨饼 - 一个

客户 - 三

'跟踪文件'

日期时间:比萨饼 - 一,客户 - 三

如果我使用 foreach 循环打印出哈希,我将在每个键和值对中获得一个日期时间。

4

2 回答 2

1

我会推荐以下。它应该根据您的需要进行相当优化。

Hashtable mhash = new Hashtable();

var sb = new StringBuilder();

foreach (var myhash in mhash)
{
    sb.AppendLine(myhash.ToString()); -- Note you format your hash however you want here
}

Logging.traceMessage(DateTime.Now, sb.ToString());
于 2013-10-23T15:31:55.847 回答
1

您需要在某个时候在列表中进行迭代 - 但出于您的目的,以下扩展方法可能会有所帮助

在库中定义您的扩展方法(比如说 myExtensions)

public static string EntriesCSV(this Hashtable ht) 
{
string ls_return; 
foreach (var pair in ht)
ls_return += String.Format("{0}={1};\r\n", pair.Key, pair.Value); //this is very simple statement, but you can improve this to fit your needs
return ls_return;

}

参考您的扩展库

using myExtensions;

享受简单的代码:)

Hashtable myHash;
Logging.traceMessage(Datetime.now, myhash.EntriesCSV());

希望这可以帮助

于 2013-10-23T15:15:15.183 回答