The analyzer has detected a 'return' statement that always returns an empty collection declared as a local variable. This typically happens when the programmer forgets to add elements to the collection.
Consider the following example:
List<string> CreateDataList() { List<string> list = new List<string>(); string data = DoSomething(); return list; }
The programmer forgot to add the 'data' element to 'list', so the method will always return an empty collection. Here is the fixed version:
List<string> CreateDataList() { List<string> list = new List<string>(); string data = DoSomething(); list.Add(data); return list; }
Sometimes developers will write a method that does nothing more than simply create and return a collection, for example:
List<List<CustomClass>> CreateEmptyDataList() { var list = new List<List<CustomClass>>(); return list; }
Another example:
List<List<CustomClass>> CreateEmptyDataList() { return new List<List<CustomClass>>(); }
This technique is used in certain programming patterns or when the type of the collection has a very long name. The analyzer can recognize such situations and ignore them.