संपादित के लिए बेहतर हो गैर सूची आदानों के लिए पूरा करने के लिए, अब IEnumerable<T>
और चेकों संभालती है अगर यह एक IList<T>
है होगा, यदि नहीं, तो यह ToList()
के माध्यम से बफर करता है, जो यह सुनिश्चित करने में सहायता करता है कि हम केवल डेटा (.Count()
और .Skip()
के बजाय डेटा को पढ़ सकते हैं) जो डेटा को कई बार पढ़ सकता है)।
चूंकि यह एक सूची है, मैं एक विस्तार विधि लिखने के लिए इच्छुक हो जाएगा कि पूरा करने के लिए है कि का उपयोग करता है:
public static IEnumerable<T> TakeLast<T>(
this IEnumerable<T> source, int count)
{
IList<T> list = (source as IList<T>) ?? source.ToList();
count = Math.Min(count, list.Count);
for (int i = list.Count - count; i < list.Count; i++)
{
yield return list[i];
}
}
स्रोत
2010-07-08 09:12:58
क्यों 'चुनें (एक => एक)'? यह कुछ भी नहीं करता है ... – tzaman
जो कि आखिरी एक्स रिकॉर्ड फ़िल्टर – Ivo