[英]Printing dictionary key value pairs in c#
我有一本字典,其中使用ulong作为键,使用结构作为值,即
public Dictionary<UInt64, OptimalOutputs> What_to_do>
最佳输出结构在哪里
public struct OptimalOutputs
{
public short gotoschool;
public short goForDining;
public short GoToAcademy;
}
如何在字典中迭代打印每个键以及值? 我尝试了键值对,但徒劳
foreach(KeyValuePair<UInt64, OptimalOutputs> pair in dict)
{
Console.WriteLine("Key: {0} Values: {1},{2},{3}",
pair.Key,
pair.Value.gotoschool, pair.Value.goForDining, pair.Value.GoToAcademy);
}
您还可以在结构中覆盖ToString
,这有助于进行调试:
public struct OptimalOutputs
{
public short GotoSchool;
public short GoForDining;
public short GoToAcademy;
public override string ToString()
{
return string.Format("{0}, {1}, {2}", GoForDining, GotoSchool, GoToAcademy);
}
}
现在,您可以使用此较短的版本(隐式调用ToString
):
foreach (KeyValuePair<UInt64, OptimalOutputs> pair in dict)
{
Console.WriteLine("Key: {0} Values: {1}", pair.Key, pair.Value);
}
您可以简单地使用foreach
迭代:
foreach (KeyValuePair<UInt64, OptimalOutputs> pair in dictionary)
{
Console.WriteLine(string.Format("Key: {0} ", pair.Key);
Console.WriteLine(string.Format("Values: {0}, {1}, {2}",
pair.Value.goForDining,
pair.Value.gotoschool,
pair.Value.GoToAcademy);
}
额外:
顺便说一下,您可以为OptimalOutputs
模型覆盖ToString()
。
public class OptimalOutputs
{
...
public override string ToString()
{
return string.Format("Values: {0}, {1}, {2}", goForDining, gotoschool, GoToAcademy);
}
...
}
接着:
foreach (KeyValuePair<UInt64, OptimalOutputs> pair in dictionary)
{
Console.WriteLine(string.Format("Key: {0} Values: {1}", pair.Key, pair.Value);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.