c# - 你如何询问一个数组是否包含一个特定的类?

标签 c# arrays methods xna contains

我正在尝试创建一个“马里奥”视频游戏,为了获得相交的对象,我们的老师为我们提供了一个示例演示,它允许对象检测它是否完全接触另一个对象,并且第一个返回该方法找到的对象。我正在尝试,而不是返回当前对象当前正在接触的每个对象的数组。我能够返回当前接触它的每个对象的数组,但现在我需要一种简单/高效的方法来检查数组是否包含所需类型的对象,例如

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/

相关文章:

c++ - 免费(): invalid next size (fast): 0x0000000000f45160 ***

java - 抽象类中抽象方法应该有什么访问修饰符?

c# - 如果在 WinRT 中设置为绑定(bind),则不会设置自定义模板控件的依赖属性

c# - InstallShield Limited edition "Shortcut"选项给用户?

c# - 如何在 XAML 中创建 "Window"菜单?

java - 我如何使用 url 将 list<String> 传递到服务器

java - 将冒泡排序作为单独的数组返回

java - Java 中的方法重载 : The method is not applicable for arguments

java - 如何在wifi打开时启动计时器?

c# - XAML UWP 浮出控件定位