如何打印Dictionary
本文关键字:string MyClass Dictionary 何打印 打印 | 更新日期: 2023-09-27 18:16:59
打印Dictionary的最佳方式是什么,我创建了Currency类,如下图
class Currency{
public string currency_code { get; set; }
public float unit { get; set; }
public string currency_name { get; set; }
public string currency_isim { get; set; }
public float forex_buying { get; set; }
public float forex_selling { get; set; }
public float banknote_buying { get; set; }
public float banknote_selling { get; set; }
}
是否有自动打印对象的方法?
我想打印出来如果可能的话
Dictionary<string, Currency> dict = new Dictionary<string, Currency>();
.....
.....
add data to dict properly
.....
.....
dict.print();
我希望它返回一个合适的字符串,其中包括对象的所有数据。我怎么能做到呢?
代码示例:
public class Currency
{
//... Add rest of class here
public override string ToString()
{
return String.Format("Currency Code: {0}'nUnit:{1}...",...);
}
}
foreach (string key in dict.Keys)
{
Console.WriteLine("Key: {0}'nValue: {1}", key, dict[key].ToString());
}
重写ToString,遍历所有键/值,并打印
如何在货币中重写ToString(),从该类返回您需要的内容?您仍然需要将它与字典中的String键配对。
class Currency {
public string currency_code { get; set; }
public float unit { get; set; }
public string currency_name { get; set; }
public string currency_isim { get; set; }
public float forex_buying { get; set; }
public float forex_selling { get; set; }
public float banknote_buying { get; set; }
public float banknote_selling { get; set; }
public override String ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append(currency_code + ", ");
sb.Append(unit.ToString() + ", ");
sb.Append(currency_name + ", ");
sb.Append(currency_isim + ", ");
sb.Append(forex_buying.ToString() + ", ");
sb.Append(forex_selling.ToString() + ", ");
sb.Append(banknote_buying.ToString() + ", ");
sb.Append(banknote_selling.ToString());
return sb.ToString();
}
}
返回字符串的格式当然可以是您喜欢的任何方式。这里,它是一个逗号分隔的列表,但您可以轻松地将", "
替换为"'n"
以获得回车。
在某处设置打印逻辑。然后:
foreach (Currency c in dict.Values) {
// c.Print(), or MyPrinterHandler.Print(c), or whatever...
}
如果你想通过序列化来使事情变得更容易,那就让你的类变得可序列化。正如在这个问题的评论中所说,Dictionary类型是不可序列化的。我不记得它是否密封了——如果不是,您可以创建一个可序列化的子类,不过我更愿意对保存数据的类进行序列化。