如何初始化此自定义类型数组:
PostType[] q = new PostType[qArray.Length];
//initialize array
for( int x = 0; x < qArray.Length; x++)
q[x] = new PostType();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来初始化这个数组?
你这样做的方式很好:
PostType[] q = new PostType[qArray.Length];
for (int i = 0; i < q.Length; i++)
q[i] = new PostType();
Run Code Online (Sandbox Code Playgroud)
我改变的一件事是将索引从x重命名为i,因为我觉得这更容易阅读,尽管这是一个主观的事情.
我改变的另一件事是for循环结束条件应该取决于q的长度,而不是qArray的长度.这样做的原因是,如果您决定将第一行更改为使用不同的长度而不是qArray.Length,则使用您的方法,您必须记住也要更改第二行.使用修改后的代码,您只需更新第一行代码,其余代码无需修改即可使用.
您也可以使用Linq执行此操作:
PostType[] q = Enumerable.Range(0, qArray.Length)
.Select(_ => new PostType())
.ToArray();
Run Code Online (Sandbox Code Playgroud)
但是对于大型阵列,在我看来这会慢一些并且不容易阅读(特别是如果你之前没有看过它).如果我是你,我想我可能会坚持使用第一种方法.