Multiple Approaches for Quickly Creating List Values in C# and Their Application Scenarios

Nov 27, 2025 · Programming · 8 views · 7.8

Keywords: C# | List Creation | Collection Initializer | LINQ | Performance Optimization

Abstract: This article provides an in-depth exploration of various methods for creating list values in C#, with a focus on the collection initializer syntax introduced in C# 3.0. It compares traditional array conversion approaches and equivalent implementations to Java's Arrays.asList. The article also demonstrates the practical application of list operations in real-world development scenarios, including LINQ queries, performance analysis, and best practice recommendations through detailed code examples and comparative analysis.

Introduction

In C# development, quickly creating and initializing lists is a common and important task. Similar to Java's Arrays.asList("test1","test2","test3") method, C# provides multiple concise and efficient ways to create lists. This article comprehensively analyzes list creation methods in C#, from basic syntax to advanced applications.

C# 3.0 Collection Initializers

The collection initializer syntax introduced in C# 3.0 significantly simplifies the list creation process. Compared to traditional array conversion approaches, this syntax is more intuitive and concise:

var list = new List<string> { "test1", "test2", "test3" };

This syntax not only reduces code volume but also improves readability. The compiler automatically adds elements within the curly braces to the newly created List<string> instance.

Traditional Array Conversion Method

Before C# 3.0, developers typically used array conversion to create lists:

IList<string> l = new List<string>(new string[] { "test1", "test2", "test3" });

Although this method is functionally complete, the syntax is relatively verbose, especially when dealing with large numbers of elements.

Performance Comparison Analysis

From a performance perspective, collection initializers are compiled into corresponding Add method calls, with performance comparable to manually calling Add methods. The array conversion approach, requiring array creation before list initialization, has slight disadvantages in memory allocation and performance.

Practical Application Scenarios

In actual development, list creation is often combined with data aggregation operations. Referring to the data summarization scenario mentioned in the reference article, we can use LINQ to create lists containing aggregated results:

var summaryList = originalData
    .GroupBy(x => x.ID)
    .Select(g => new { ID = g.Key, EarliestDate = g.Min(x => x.PostedDate) })
    .ToList();

This pattern is particularly useful when processing database query results or API return data.

Best Practice Recommendations

1. For simple static list creation, recommend using collection initializer syntax

2. When converting from existing collections, consider using ToList() extension methods

3. In performance-sensitive scenarios, avoid unnecessary intermediate collection creation

4. Using var keyword can simplify type declarations and improve code readability

Extended Applications

Beyond basic string lists, these methods are equally applicable to complex types:

var complexList = new List<CustomObject>
{
    new CustomObject { Property1 = "value1", Property2 = 1 },
    new CustomObject { Property1 = "value2", Property2 = 2 }
};

Conclusion

C# provides multiple flexible ways to create and initialize lists, allowing developers to choose the most appropriate method based on specific scenarios. Collection initializer syntax, with its conciseness and readability, has become the preferred choice in modern C# development, while traditional array conversion methods still hold value in certain specific scenarios. Mastering these methods will help write more efficient and maintainable C# code.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.