अस्वीकरण नहीं करता है अस्वीकरण: यह प्रश्न मेरी व्यक्तिगत जिज्ञासा से कुछ हासिल करने की वास्तविक आवश्यकता से अधिक है। तो मेरा उदाहरण बढ़ने जा रहा है। फिर भी मुझे लगता है कि यह एक मुद्दा है जो बहुत अच्छी तरह से फसल हो सकता है।एक बंदरगाह के साथ LINQ के ज़िप का उपयोग करना जो
मान लें कि हम दो अनुक्रमों को दोहराने के लिए Zip का उपयोग कर रहे हैं, एक शून्य विधि का आह्वान करते हुए, जो कि जोड़े का एक आइटम दूसरे से भिन्न होता है (इसलिए किसी भी वापसी मूल्य को छोड़कर) एक अपवाद फेंकता है। यहां बिंदु यह नहीं है कि विधि अपवाद फेंकता है, उतना ही यह शून्य हो जाता है।
दूसरे शब्दों में, हम दो संग्रहों पर ForEach
कर रहे हैं (और वैसे, मुझे पता है कि Eric Lippert thinks about ForEach
)।
अब, Zip
Func<TFirst, TSecond, TResult>
चाहता है, इसलिए निश्चित रूप से Action<TFirst, TSecond>
के बराबर कुछ गुजरना काम नहीं करेगा।
मेरा प्रश्न है: क्या कोई बेवकूफ तरीका है जो इससे बेहतर है (यानी एक डमी मूल्य लौटा रहा है)?
var collection1 = new List<int>() { ... };
var collection2 = new List<int>() { ... };
collection1.Zip(collection2, (first, second) =>
{
VoidMethodThatThrows(first, second);
return true;
});
संबंधित एरिक Lippert ब्लॉग पोस्ट: http://blogs.msdn.com/b/ericlippert/archive/2009/06/29/the-void-is-invariant.aspx – AakashM