2012-03-19 12 views
6

संभव डुप्लिकेट:
How can I implement NotOfType<T> in LINQ that has a nice calling syntax?लिंक में ऑफ टाइप के विपरीत?

मैं एक संग्रह है, जहां मैं सभी वस्तुओं है कि कर रहे हैं प्रकार Foo की नहीं से अधिक पुनरावृति करना चाहते हैं। असल में मुझे OfType<Foo>() के विपरीत कुछ चाहिए। ऐसा करने का उचित तरीका क्या होगा?

अब तक मैं का उपयोग किया है:

var result = myList.Where(elem => !(elem is Foo)); 
+1

आपका रास्ता के लिए किया जाता है, पुन: उपयोग करना चाहते हैं तो अच्छा है। –

उत्तर

0

इस

var result = myList.Where(elem => (elem as Foo)==null) 

आशा इस मदद करता है की तरह हो सकता है।

+0

मुझे लगता है कि यह मूल के बराबर है। –

+0

यह 'से बेहतर कैसे है! (Elem foo) '? –

+0

@ डैनियल हिल्गार्थ: यह एक अलग और प्रदर्शन बिंदु से है एएस एक तेज़ है तो आईएस है। लेकिन कार्यात्मक दृष्टिकोण से, कोई फर्क नहीं पड़ता। मैं सिर्फ एक अलग पसंद की पेशकश करता हूं। – Tigran

9

आपके कोड के साथ कुछ भी गलत नहीं है।

आप इस कोड को आप एक विस्तार विधि में इस ecnapsulate सकता है के रूप में यह OfType<Foo>()

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