Auto-Initializing C# Lists

Auto-Initializing C# Lists

I am creating a new C# List (List<double>). Is there a way, other than to do a loop over the list, to initialize all the starting values to 0?

1

6 Answers

In addition to the functional solutions provided (using the static methods on the Enumerable class), you can pass an array of doubles in the constructor.

var tenDoubles = new List<double>(new double[10]);

This works because the default value of an double is already 0, and probably performs slightly better.

5

You can use the initializer:

var listInt = new List<int> {4, 5, 6, 7};
var listString = new List<string> {"string1", "hello", "world"};
var listCustomObjects = new List<Animal> {new Cat(), new Dog(), new Horse()};

So you could be using this:

var listInt = new List<double> {0.0, 0.0, 0.0, 0.0};

Otherwise, using the default constructor, the List will be empty.

3

Use this code:

Enumerable.Repeat(0d, 25).ToList();
new List<double>(new double[25]);     //Array elements default to 0
2

One possibility is to use Enumerable.Range:

int capacity;
var list = Enumerable.Range(0, capacity).Select(i => 0d).ToList();

Another is:

int capacity;
var list = new List<double>(new double[capacity]);
0

A bit late, but maybe still of interest: Using LINQ, try

var initializedList = new double[10].ToList()

...hopefully avoiding copying the list (that's up to LINQ now).

This should be a comment to Michael Meadows' answer, but I'm lacking reputation.

0

For more complex types:

List<Customer> listOfCustomers =
        new List<Customer> {
            { Id = 1, Name="Dave", City="Sarasota" },
            { Id = 2, Name="John", City="Tampa" },
            { Id = 3, Name="Abe", City="Miami" }
        };

from here: David Hayden's Blog

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Sophia Al-Mansoor
Author

Sophia Al-Mansoor

Sophia analyzes international trade, startup ecosystems, retail transformation, and supply chain logistics for modern digital publications.