我需要在HashTable
文件中打印出来。
是否可以在没有for
/ foreach
循环的情况下执行此操作?类似的东西:
Hashtable myHash;
Logging.traceMessage(Datetime.now, myhash) // I want to have just a single datatime entry in my traceMessage.
我的预期输出类似于:
'散列表'
[KEY] - [VALUE]
比萨饼 - 一个 客户 - 三个'跟踪文件'
日期时间:比萨饼 - 一个,顾客 - 三个
如果我使用foreach循环打印出哈希值,我将在每个键和值对中获得一个日期时间。
答案 0 :(得分:1)
你需要在某个时候迭代列表 - 但为了你的目的,下面的扩展方法可能有帮助
在库中定义Extension方法(比如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());
希望这有帮助
答案 1 :(得分: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());