2011-11-21 12 views
13

私はリスト(Withinと呼ばれます)を持っていて、それはタイプGameObjectのオブジェクトを含んでいます。 GameObjectは、DogBallを含む他の多くの親クラスです。私は、WithinがBallタイプのオブジェクトを含んでいる場合にtrueを返すメソッドを作りたいと思いますが、これを行う方法はわかりません。リストに特定のタイプのオブジェクトが含まれているかどうかを確認するにはどうすればよいですか? C#

私はCount<>,Any<>Find<>などいくつかの方法をC#で提供してみましたが、動作させることができませんでした。

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

答えて

9

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()) 

Cast<T>()OfType<T>()除くすべてのLINQの方法の一般的なパラメータは、コンパイルするメソッド呼び出しを可能にするために使用され、リストのタイプ(または共変キャスト用)と互換性がなければなりません。タイプ別にフィルタリングすることはできません。もし興味があるなら非LINQで

関連する問題