﻿# V3162\. Suspicious return of an always empty collection\.

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

Пример:

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

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

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

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

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

Или так:

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

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