के साथ संख्या अनुक्रम उत्पन्न करें मैं LINQ कथन लिखने का प्रयास करता हूं जो मुझे संख्याओं के सभी संभावित संयोजन देता है (मुझे इसे एक परीक्षण के लिए चाहिए और मैं इस article of Eric Lippert से प्रेरित था)। विधि के प्रोटोटाइप मैं फोन लगता है:LINQ
IEnumerable<Collection<int>> AllSequences(int start, int end, int size);
नियम हैं:
- सभी लौटे संग्रह
- के बीच हर संख्या में वृद्धि करने की है एक संग्रह के भीतर
size
- संख्या मूल्यों की लंबाई है
start
औरend
का उपयोग किया जाना चाहिए
तो बुला AllSequences(1, 5, 3)
10 संग्रह में परिणाम चाहिए, आकार 3 में से प्रत्येक:
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
अब, किसी भी तरह मैं वास्तव में एक शुद्ध LINQ समाधान देखना चाहते हैं। मैं अपने आप पर एक गैर LINQ समाधान लिखने में सक्षम हूं, इसलिए LINQ के बिना समाधान में कोई प्रयास न करें।
मेरे कोशिश करता अब तक एक बिंदु जहां मैं अपने विधि का एक पुनरावर्ती कॉल के परिणाम के साथ एक नंबर शामिल होने की आवश्यकता पर समाप्त हो गया - कुछ की तरह:
return from i in Enumerable.Range(start, end - size + 1)
select BuildCollection(i, AllSequences(i, end, size -1));
लेकिन मैं इसे प्रबंधन नहीं कर सकते एक पर BuildCollection()
लागू करने के लिए LINQ आधार - या यहां तक कि इस विधि कॉल को छोड़ दें। क्या आप यहां मेरी मदद कर सकते हैं?
@Noldorin, @Fede: महान जवाब के लिए धन्यवाद - मैं निश्चित रूप से 'Enumerable' के तरीकों को करीब से देख ले जाना है (' दोहराएँ की तरह() 'या' Concat() ') – tanascius