Ответ 1
в не-linq, если вам интересно
public bool DetectBall(List<GameObject> Within)
{
foreach(GameObject go in Within)
{
if(go is Ball) return true;
}
return false;
}
У меня есть список (называемый Within
) и содержит объекты типа GameObject
.
GameObject
является родительским классом для многих других, включая Dog
и Ball
. Я хочу создать метод, который возвращает true, если внутри содержит любой объект типа Ball
, но я не знаю, как это сделать.
Я пробовал использовать Count<>
, Any<>
, Find<>
и несколько других методов, предоставляемых в С#, но я не мог заставить их работать.
public bool DetectBall(List<GameObject> Within)
{
//if Within contains any object of type ball:
{
return true;
}
}
в не-linq, если вам интересно
public bool DetectBall(List<GameObject> Within)
{
foreach(GameObject go in Within)
{
if(go is Ball) return true;
}
return false;
}
if (within.OfType<Ball>().Any())
Общий параметр всех методов LINQ, кроме Cast<T>()
и OfType<T>()
, используется для разрешения вызова метода и должен быть совместим с типом списка (или для ковариантного перевода). Они не могут использоваться для фильтрации по типу.