2011-11-21 19 views
13

मेरी एक सूची है (जिसे Within कहा जाता है), और इसमें GameObject प्रकार की वस्तुएं शामिल हैं। GameObjectDog और Ball सहित कई अन्य लोगों के लिए एक अभिभावक वर्ग है। मैं एक ऐसी विधि बनाना चाहता हूं जो सही हो तो अगर भीतर Ball टाइप की कोई वस्तु है, लेकिन मुझे नहीं पता कि यह कैसे करें।मैं कैसे जांचूं कि किसी सूची में किसी निश्चित प्रकार का ऑब्जेक्ट है या नहीं? सी #

मैंने Count<>, Any<>, Find<> और सी # के भीतर प्रदान की गई कुछ अन्य विधियों का उपयोग करने का प्रयास किया है, लेकिन मैं उन्हें काम नहीं कर सका।

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

उत्तर

9
गैर LINQ यदि आप रुचि रखते हैं में

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 तरीकों में से सामान्य पैरामीटर संकलित करने के लिए विधि कॉल अनुमति देने के लिए प्रयोग किया जाता है और सूची के प्रकार (या एक covariant कलाकारों के लिए) के साथ संगत होना चाहिए। वे प्रकार के अनुसार फ़िल्टर करने के लिए इस्तेमाल नहीं किया जा सकता है।

संबंधित मुद्दे

 संबंधित मुद्दे