== Why is this an issue? 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 [source,csharp] ---- 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 [source,csharp] ---- 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) === Message Refactor this collection to implement [IEnumerable|ICollection|IList] === Highlighting Class declaration endif::env-github,rspecator-view[]