2011-11-21 35 views
13

Tôi có một danh sách (được gọi là Within) và nó chứa các đối tượng thuộc loại GameObject. GameObject là lớp cha mẹ cho nhiều người khác, bao gồm DogBall. Tôi muốn thực hiện một phương thức trả về true nếu trong đó chứa bất kỳ đối tượng nào thuộc loại Ball, nhưng tôi không biết cách thực hiện điều này.Làm cách nào để kiểm tra xem Danh sách có chứa một đối tượng thuộc một loại nhất định không? C#

Tôi đã thử sử dụng Count<>, Any<>, Find<> và một vài phương pháp khác được cung cấp trong C#, nhưng tôi không thể khiến chúng hoạt động.

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

Trả lời

9

in non-linq nếu bạn quan tâm

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

    return false; 
} 
43
if (within.OfType<Ball>().Any()) 

Tham số chung của tất cả các phương pháp LINQ trừ Cast<T>()OfType<T>() được sử dụng để cho phép các cuộc gọi phương thức để biên dịch và phải phù hợp với các loại danh sách (hoặc cho một dàn diễn viên hiệp biến). Chúng không thể được sử dụng để lọc theo loại.

Các vấn đề liên quan