我正在尝试创建一个“马里奥”视频游戏,为了获得相交的对象,我们的老师为我们提供了一个示例演示,它允许对象检测它是否完全接触另一个对象,并且第一个返回该方法找到的对象。我正在尝试,而不是返回当前对象当前正在接触的每个对象的数组。我能够返回当前接触它的每个对象的数组,但现在我需要一种简单/高效的方法来检查数组是否包含所需类型的对象,例如
if (array.Contains(Mario))
{
//Do Work here
}
被检查是否包含(马里奥)的数组是相交 Sprite 的返回数组,但是当我询问它是否真的包含马里奥类型的对象时,它说“错误 14 'WindowsGame10.Mario' 是一个'类型',但像'变量'一样使用”。我知道我可以使用 for 循环执行此操作,并询问数组中的每个单独索引 if (array[i].GetType() == typeof(Mario))
,但次数我需要在代码中执行此检查,并一遍又一遍地重新输入相同的代码,我觉得我需要学习一种更有效的方法来执行此操作。我是计算机编程的第一年,我正在使用 C# XNA,我需要一些我能理解的解决方案。如果有更好的方法,请告诉我。
最佳答案
您可以使用 LINQ 的 OfType()
和 Any()
方法:
if (array.OfType<Mario>().Any())
{
关于c# - 你如何询问一个数组是否包含一个特定的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642673/