Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

initialize "array field"

My class contains such field:

class AAA {
    private Queue<DateTime>[] times = new Queue<DateTime>[10];
    ....

As I understand this is initializes array of null. Do I have options other than writing for loop in constructor?

Upvotes: 1

Views: 165

Answers (1)

Nasreddine
Nasreddine

Reputation: 37808

You can initialize this array using an array initializer like this :

private Queue<DateTime>[] times = new Queue<DateTime>[10]
                                  {
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                      new Queue<DateTime>(), 
                                  };

or with whatever values you need inside it. You can use this shorthand too :

private Queue<DateTime>[] times = new[]
                                 {
                                     new Queue<DateTime>(), 
                                     ..... 
                                     new Queue<DateTime>(), 
                                 };

Upvotes: 4

Related Questions