When a collection is empty it makes no sense to access or iterate it. Doing so anyway is surely an error; either population was accidentally omitted or the developer doesn’t understand the situation.
This rule raises an issue when any use is made of an empty collection other than the following ignored calls: Add,
AddRange, Equals, GetHashCode.
var strings = new List<string>();
strings.Remove("bar"); // Noncompliant
if (strings.Contains("foo")) {} // Noncompliant
foreach (var str in strings) {} // Noncompliant