All rules
IDE0306Language rules (expression-level preferences)

Use collection expression for new

Use collection expression for new

Microsoft docs

Description

This rule flags places where a collection expression with a spread element (..) could be used to initialize a list instead of new. For example, this rule offers to simplify code like new List<...>(x) into the collection expression form ([.. x]).

Example

// Code with violation.
List<int> l1 = new List<int>(Enumerable.Range(1, 10));
List<int> m1 = new List<int>(new[] { 1, 2, 3 });

// Fixed code.
List<int> l1 = [.. Enumerable.Range(1, 10)];
List<int> m1 = [.. new[] { 1, 2, 3 }];
Group results
0 yes 0 no
ConsensusNone (disabled)
Severity preference (yes voters)
Suggestion0
Warning0
Error0