मैं सी # का उपयोग कर रहा हूं।आप एक अनुमानित प्रतिनिधि इनलाइन कैसे घोषित करते हैं?
तो मेरे पास एक वस्तु है जिसमें कुछ फ़ील्ड हैं, वास्तव में कोई फर्क नहीं पड़ता। मेरे पास इन वस्तुओं की एक सामान्य सूची है।
List<MyObject> myObjects = new List<MyObject>();
myObjects.Add(myObject1);
myObjects.Add(myObject2);
myObjects.Add(myObject3);
तो मैं कुछ मानदंडों के आधार पर अपनी सूची से वस्तुओं को हटाना चाहता हूं। उदाहरण के लिए, myObject.X >= 10.
मैं ऐसा करने के लिए RemoveAll(Predicate<T> match)
विधि का उपयोग करना चाहता हूं।
मुझे पता है कि मैं एक प्रतिनिधि को परिभाषित कर सकता हूं जिसे RemoveAll में पारित किया जा सकता है, लेकिन मैं जानना चाहता हूं कि एक अज्ञात प्रतिनिधि के साथ इस इनलाइन को परिभाषित करने के बजाय, केवल एक ही स्थान पर उपयोग किए जाने वाले प्रतिनिधि कार्यों का एक समूह बनाने के बजाय।
स्पष्ट प्रतिनिधि
myObjects.RemoveAll(delegate (MyObject m) { return m.X >= 10; });
लैम्ब्डा
myObjects.RemoveAll(m => m.X >= 10);
अलावा:
क्यों वीबी गुमनाम प्रतिनिधियों चाहते चाहिए जब यह lambdas है? और हां, अगले संस्करण में बहु-लाइन लैम्ब्डा और लैम्ब्डा होंगे जो एक मान (= 'उप ') नहीं लौटाएंगे। –
कारणों के कारण आपने अभी कहा - मल्टीलाइन कथन, और फ़ंक्शंस जो मान वापस नहीं करते हैं। यह जानना अच्छा है कि यह अगले संस्करण में होगा, लेकिन सी # ने 2005 के बाद से यह किया है। –