如何初始化此自定义类型数组:

PostType[] q = new PostType[qArray.Length];

//initialize array
for( int x = 0; x < qArray.Length; x++)
    q[x] = new PostType();

有没有更好的方法来初始化此数组?

最佳答案

您的操作方式很好:

PostType[] q = new PostType[qArray.Length];
for (int i = 0; i < q.Length; i++)
    q[i] = new PostType();

我已更改的一件事是将索引的可验证索引从x重命名为i,因为我发现这比较容易理解,尽管这是主观的。

我更改的另一件事是for循环结束条件应取决于q的长度,而不取决于qArray的长度。这样做的原因是,如果您决定更改第一行以使用不同的长度而不是qArray.Length,则必须记住也要更改第二行。使用修改后的代码,您只需要更新第一行代码,其余代码无需修改即可工作。

您也可以使用Linq执行此操作:
PostType[] q = Enumerable.Range(0, qArray.Length)
                         .Select(_ => new PostType())
                         .ToArray();

但是对于大型数组,这在我看来会比较慢,并且阅读起来并不容易(特别是如果您以前从未看过)。如果我是你,我想我可能只会坚持第一种方法。

关于c# - 如何使用自定义类型初始化数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2035380/

10-10 21:55