﻿# 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:

```cpp
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:

```cpp
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:

```cpp
List<List<CustomClass>> CreateEmptyDataList()
{
  var list = new List<List<CustomClass>>();
  return list;
}
```

Another example:

```cpp
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\.