How do I initialize this array of custom types:
PostType[] q = new PostType[qArray.Length];
//initialize array
for( int x = 0; x < qArray.Length; x++)
q[x] = new PostType();
Is there a better way to initialize this array?
The way you are doing it is fine:
PostType[] q = new PostType[qArray.Length];
for (int i = 0; i < q.Length; i++)
q[i] = new PostType();
One thing I have changed are to rename the index veriable from x to i, as I find this easier to read, although it's a subjective thing.
Another thing I have changed is the for loop end condition should depend on the length of q, not on the length of qArray. The reason for this is that with your method if you decide to change the first line to use a different length instead of qArray.Length, you'd have to remember to change the second line too. With the modified code you only need to update the first line of code and the rest will work without modification.
You could also do this using Linq:
PostType[] q = Enumerable.Range(0, qArray.Length)
.Select(_ => new PostType())
.ToArray();
But for large arrays this will be slower and not really easier to read in my opinion (especially if you haven't seen it before). I think I'd probably just stick with the first method if I were you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With