# V3162. Suspicious return of an always empty collection.

Анализатор обнаружил, что выражение 'return', всегда возвращает пустую коллекцию, которая была определена как локальная переменная. Чаще всего это происходит из-за того, что в коллекцию забыли добавить элементы.

Пример:

    List<string> CreateDataList()
    {
      List<string> list = new List<string>();
      string data = DoSomething();
      return list;
    }

В данном примере забыли добавить элемент 'data' в 'list'. Поэтому метод всегда будет возвращать пустую коллекцию. Исправленный вариант:

    List<string> CreateDataList()
    {
      List<string> list = new List<string>();
      string data = DoSomething();
      list.Add(data);
      return list;
    }

Иногда программисты создают метод, который только и делает, что создает и возвращает коллекцию. Например, так:

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

Или так:

    List<List<CustomClass>> CreateEmptyDataList()
    {
      return new List<List<CustomClass>>();
    }

Это используется для некоторых паттернов программирования, или если тип коллекции имеет очень длинное название. Анализатор понимает такие ситуации и не выдаёт на них предупреждения.