this question का जवाब देने के बाद में अनंत IEnumerable मैं एक साथ निम्नलिखित सी # कोड सिर्फ मनोरंजन के लिए डाल दिया:एक foreach पाश
public static IEnumerable<int> FibonacciTo(int max)
{
int m1 = 0;
int m2 = 1;
int r = 1;
while (r <= max)
{
yield return r;
r = m1 + m2;
m1 = m2;
m2 = r;
}
}
foreach (int i in FibonacciTo(56).Where(n => n >= 24))
{
Console.WriteLine(i);
}
समस्या यह है कि मैं समारोह के लिए एक max
पैरामीटर पारित करने के लिए की आवश्यकता होगी, पसंद नहीं है है। अभी, यदि मैं एक का उपयोग नहीं करता हूं तो कोड सही डेटा आउटपुट करेगा लेकिन फिर लापता दिखाई देगा क्योंकि आईनेमेरेबल काम करना जारी रखता है। मैं यह लिख सकते हैं कैसे इतना है कि मैं सिर्फ इस तरह इसका इस्तेमाल कर सकते हैं:
foreach (int i in Fibonacci().Where(n => n >= 24 && n <= 56))
{
Console.WriteLine(i);
}
मैंने अभी यह पता लगाया था और इसे स्वयं पोस्ट करने वाला था। अजीब बात यह है कि आखिरकार प्रश्न को लिखने से आपको कभी-कभी –
हम्म पर इंगित किया जाता है ... मेरी मूल समस्या यह है कि मुझे इसे केवल एक लैम्ब्डा अभिव्यक्ति में करने पर ठीक किया गया था। अब मैं एक नया "SkipThenTakeWhile()" Inumerable एक्सटेंशन लिखने का लुत्फ उठा रहा हूं जो इसे अनुमति देगा, अगर केवल मैं इसके लिए बेहतर नाम सोच सकता हूं;) –
जबकि मुझे LINQ ऑपरेटरों को भी लिखने का आनंद मिलता है, तो मैं सवाल करता हूं कि यह वास्तव में एक योग्यता के लिए वास्तव में पर्याप्त आता है;) –