Continuing in our weekly blog post series that highlights a few of the new additions to the Framework Design Guidelines 2nd edition.. This content is found in the LINQ section of Chapter 9: Common Design Patterns.
Supporting LINQ through IEnumerable<T>
DO implement IEnumerable<T> to enable basic LINQ support.
Such basic support should be sufficient for most in-memory data sets. The basic LINQ support will use the extension methods on IEnumerable<T> provided in the .NET Framework. For example, simply defineing as follows:
public class RangeOfInt32s : IEnumerable<int> {
public IEnumerator<int> GetEnumerator() {…}
IEnumerator IEnumerable.GetEnumerator() {…}
}
Doing so Allows for the following code, despite the fact that RangeOfInt32s did not implement a Where method:.
var a = new RangeOfInt32s();
var b = a.Where(x => x>10);
Keeping in mind that you’ll get your same enumeration semantics, and putting a Linq façade on them does not make them execute any faster or use less memory.
Tidak ada komentar:
Posting Komentar