本文介绍了初始化引用类型对象数组的简洁方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有更好的方法来初始化引用类型对象的数组,像这样.

I wonder if there is better way to initialize an array of reference type object, like this.

Queue<int>[] queues = new Queue<int>[10];
for (int i = 0; i < queues.Length; i++)
    queues[i] = new Queue<int>();

我尝试了Enumerable.Repeat,但是数组中的所有元素都引用相同的实例,

I tried Enumerable.Repeat, but all elements in the array refer to same instance,

Queue<int>[] queues = Enumerable.Repeat(new Queue<int>(), 10).ToArray();

我也尝试了Array.ForEach,但是如果没有ref关键字,它将无法正常工作

I also tried Array.ForEach, but it doesn't work without ref keyword:

Queue<int>[] queues = Array.ForEach(queues, queue => queue = new Queue<int>());

还有其他想法吗?

推荐答案

您可以使用:

Enumerable.Range(0,10).Select(_=>new Queue<int>()).ToArray()

但是IMO,您的第一个例子也很好.

But IMO your first example is perfectly fine too.

这篇关于初始化引用类型对象数组的简洁方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 15:59