如何检查List是否包含特定类型的对象?c#

本文关键字:类型 对象 包含特 是否 何检查 检查 List | 更新日期: 2023-09-27 18:15:31

我有一个列表(称为Within),它包含类型为GameObject的对象。GameObject是许多其他类的父类,包括DogBall。我想做一个方法,返回true如果Within包含类型Ball的任何对象,但我不知道如何做到这一点。

我试过使用Count<>, Any<>, Find<>和c#中提供的其他一些方法,但我无法让它们工作。

public bool DetectBall(List<GameObject> Within)
{
    //if Within contains any object of type ball:
    {
        return true;
    }
}

如何检查List是否包含特定类型的对象?c#

if (within.OfType<Ball>().Any())

除了Cast<T>()OfType<T>()之外的所有LINQ方法的泛型参数用于允许方法调用进行编译,并且必须与列表的类型兼容(或用于协变强制转换)。它们不能用于按类型筛选。

如果你感兴趣的话

public bool DetectBall(List<GameObject> Within)
{
    foreach(GameObject go in Within)
    {
        if(go is Ball) return true;
    }
    return false;
}