Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Ценность |
|---|---|
| идентификатор правила | IDE0305 |
| Заголовок | Используйте выражение коллекции для Fluent |
| Категория | Стиль |
| подкатегория | Языковые правила (предпочтения уровня выражений) |
| применимые языки | С# 12+ |
| Опции | dotnet_style_prefer_collection_expression |
Обзор
Это правило отмечает места, где построение коллекции осуществляется способом, что означает, где используются такие методы, как Add(), AddRange(), AsSpan(), ToList()и ToArray(). Вместо этого можно использовать выражение для инициализации коллекции. Например, x.AddRange(y).Add(z).AsSpan() преобразуется в [x, ..y, z].
Параметры
Параметры указывают поведение, которое правило должно обеспечить. См. информацию о настройке опций в разделе Формат опции.
dotnet_style_prefer_collection_expression
| Свойство | Ценность | Описание |
|---|---|---|
| имя параметра | dotnet_style_prefer_collection_expression | |
| значения опций | true | when_types_exactly_match |
Предпочитайте использовать выражения коллекции только в том случае, если типы совпадают точно, например, List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
Предпочтительно использовать выражения коллекций, даже если типы совпадают не строго, например, IEnumerable<int> list = new List<int>() { 1, 2 };. Целевой тип должен соответствовать типу справа или быть одним из следующих типов: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Отключает правило. | |
| значение параметра по умолчанию | when_types_loosely_match* |
*При использовании этого параметра исправление кода может изменить семантику кода.
Пример
// Code with violation.
List<int> i = new[] { 1, 2, 3 }.ToList();
IEnumerable<int> j = new[] { 1, 2, 3 }.ToList();
// Fixed code.
List<int> i = [1, 2, 3];
IEnumerable<int> j = [1, 2, 3];
Подавление предупреждения
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable IDE0305
// The code that's violating the rule is on this line.
#pragma warning restore IDE0305
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации .
[*.{cs,vb}]
dotnet_diagnostic.IDE0305.severity = none
Чтобы отключить все правила стиля кода, задайте уровень важности для категории Style в none в файле конфигурации .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.