# V3162. Suspicious return of an always empty collection.

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.