ReSharper 2017.1 Help

Code Inspection: Parameter type can be IEnumerable of T

If you have a method whose parameter is an array, a List or some other type that implements IEnumerable<T>, ReSharper offers you an option to change the parameter type to IEnumerable<T> — provided that the method itself only iterates the collection and does not access any non-IEnumerable members.

The benefit from this change, if you choose to make it, is that the method becomes agnostic with respect to the type of the collection you pass to it.

Suboptimal codeAfter the quick-fix
private void ViewCategories(IList<string> categories) { foreach (var c in categories) { Console.WriteLine(c); } }
private void ViewCategories(IEnumerable<string> categories) { foreach (var c n categories) { Console.WriteLine(c); } }
Last modified: 12 October 2017

See Also