Mat*_*all 2 c# arrays methods xna contains
我正在尝试创建一个"马里奥"视频游戏,为了获得相交的对象,我们的老师为我们提供了一个示例演示,它允许对象检测它是否正在接触另一个对象,并且第一个对象是方法查找,返回.我正在尝试,而是返回当前对象当前正在触摸的每个对象的数组.我能够返回当前触及它的每个对象的数组,但现在我需要一种简单/有效的方法来检查数组是否包含所需类型的对象,例如
if (array.Contains(Mario))
{
//Do Work here
}
Run Code Online (Sandbox Code Playgroud)
正在检查的数组是否包含(Mario),是相交Sprite的返回数组,但是当我问它是否实际包含Mario类型的对象时,它会显示"Error 14'WindowsGame10.Mario'是'type'但用作'变量'".我知道我可以使用for循环执行此操作,并询问数组中的每个索引if (array[i].GetType() == typeof(Mario)),但是我需要在代码中执行此检查的次数,并重复键入相同的代码,我觉得我需要学习一种更有效的方法来执行此操作.我是计算机程序设计的第一年,我正在使用C#XNA,我需要一些我能理解的解决方案.如果有更好的方法,请告诉我.
您可以使用LINQ OfType()和Any()方法:
if (array.OfType<Mario>().Any())
{
Run Code Online (Sandbox Code Playgroud)