The NET Framework 2.0 introduced the generic interface ``++System.Collections.Generic.IEnumerable++`` and it should be preferred over the older, non generic, interfaces. This rule raises an issue when a public type implements ``++System.Collections.IEnumerable++``. == Noncompliant Code Example ---- using System; using System.Collections; public class MyData { public MyData() { } } public class MyList : CollectionBase // Noncompliant { public void Add(MyData data) { InnerList.Add(data); } // ... } ---- == Compliant Solution ---- using System; using System.Collections.ObjectModel; public class MyData { public MyData() { } } public class MyList : Collection { // Implementation... } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] endif::env-github,rspecator-view[]