आप पेजिंग कर रहे हैं और आप बस चाहते हैं किसी अन्य पृष्ठ पर छोड़कर आप Skip
और Take
का उपयोग अन्य उत्तरों में वर्णित के रूप में कर सकते हैं। हालांकि, यदि आप पूरे अनुक्रम को किसी विशेष आकार के हिस्सों में समूह बनाना चाहते हैं तो आप इसके बजाय GroupBy
का उपयोग कर सकते हैं।
var groupSize = 4;
// The characters 'a' - 'z'.
var source = Enumerable.Range(0, 26).Select(i => (Char) ('a' + i));
var groups = source
.Select((x, i) => new { Item = x, Index = i })
.GroupBy(x => x.Index/groupSize, x => x.Item);
foreach (var group in groups)
Console.WriteLine("{0}: {1}", group.Key, String.Join(", ", group));
उत्पादन होता है: यहाँ एक छोटा सा उदाहरण है
0: a, b, c, d
1: e, f, g, h
2: i, j, k, l
3: m, n, o, p
4: q, r, s, t
5: u, v, w, x
6: y, z
स्रोत
2012-03-15 11:03:29
+1 काफी कुछ यह केवल जवाब यह है कि वास्तव में पृष्ठों का चयन करता है, बाकी सिर्फ आइटम का चयन 11-20 ;-) –
तो है बैनर वाक्यांश एक 'IQueryable' बाकी टिप्पणी को अनदेखा करता है। कृपया घर पर ऐसा मत करो! 'एन्यूमेरेबल .किप 'ओ (एन) है! :-) (यदि आप मुझ पर भरोसा नहीं करते हैं, तो इसे IlSpy/परावर्तक के माध्यम से देखने का प्रयास करें)। मैं यह भी ध्यान दूंगा कि आप बैनर कैश नहीं कर रहे हैं। मुझे आशा है कि बैनर प्राइज़ एक निश्चित संग्रह है, क्योंकि यदि यह भी 'आईनेमरेबल' है तो यह प्रत्येक पृष्ठ के लिए पुन: उत्पन्न होगा। – xanatos