2 Int的元组和Unity C#中的contains方法

cha*_*ate 4 c# tuples unity-game-engine

尝试制作两个Integer的列表元组,然后在其中添加一些内容。然后比较x,y是否为列表元组中的元组之一。

List<Tuple<int, int>> monsterPositions;
Run Code Online (Sandbox Code Playgroud)

我立即收到这样的错误,它没有Tuple:

Assets / TimeMap.cs(20,7):错误CS0246:找不到类型或名称空间名称“元组”。您是否缺少装配参考?

我发现我可以像这样添加内部元组:

monsterPositions.Add(randomX, randomY);
Run Code Online (Sandbox Code Playgroud)

然后最困难的部分是如何比较元组列表中的x和y。我正在尝试使用,Contains但我不知道这有什么问题。

monsterPositions.Contains(Tuple(x, y));
Run Code Online (Sandbox Code Playgroud)

Bil*_*kil 6

退出@ S.Akbari对问题的评论,因为我在浏览时几乎错过了它:

Unity 不支持 Tuples

Unity 2017.3.1f1中仍然如此。

其他观察:

  • 如果您仅存储s和s,则可以使用Vector2Vector2Int(和其他数字)。floatint
  • 我注意到UniRx有Tuple支持,如果您使用的是
  • 最好遵循@Jon Skeet的建议,否则,或者像他提到的那样,制作自己的类或结构,以在必要时实现平等。