请尝试使用Dictionary <Dictionary <int,int>,Dictionary <int,int >>

Rya*_*n H 1 .net c#

我希望将字典嵌套在另一个中,以便容纳块的xy坐标.所以我会的

IDictionary<IDictionary<int, int>, IDictionary<int, int>>
Run Code Online (Sandbox Code Playgroud)

并且关键字词将容纳列,行组合,而值Dictionary将容纳x和y坐标.在用户输入平面上的块的值之后,它将用于绘制2D线框.

我有几个问题:1)我可能遇到哪些陷阱?2)是否有更好的方法来应对这一挑战?

谢谢

更新不确定如何标记答案,因为两个不同的建议导致使用的解决方案.我结束了:

IDictionary<KeyValuePair<int, int>, Point>
Run Code Online (Sandbox Code Playgroud)

并且每个块设置下一个块的x,y坐标到其右边和下一个块.

这是Mehrdad Afshari,Reed Copsey和CSharpAtl为KeyValuePair和Cory Charlton为Point提供的答案的组合.

如果有办法标记多个答案,请告诉我,否则我只是将列表中的第一个答案标记为答案.

Meh*_*ari 5

您是否尝试将一对整数映射到字典?如果是这种情况,你应该使用类似的东西:

Dictionary<Tuple<int, int>, Dictionary<int,int>>
Run Code Online (Sandbox Code Playgroud)

您当前正在做的事情是将IDictionary对象(一种引用类型)映射到另一个IDictionary实例.它只是检查密钥的引用相等性(标识),根本不考虑密钥字典的内容.

如果您尝试将包含一组值的键映射到字典(例如,在记忆和动态编程中有用),则需要声明自己的比较器以比较键的内容,而不是仅仅考虑它们的引用.

  • 猜猜我应该回答而不是评论...... :) (4认同)