使用空列表初始化列表数组的最有效方法是什么?

Blu*_*rin 0 c# optimization

我想以最有效的方式初始化一个带有空List的List数组.

这样做的正确方法是什么?

    List<int>[] neighbour = new List<int>[10]; // this does not create the List
    for (int i = 0 ; i < neighbour.Length ; ++i)
        neighbour[i] = new List<int>();        // is that really efficient ? 
Run Code Online (Sandbox Code Playgroud)

brz*_*brz 6

试试这个:

var neighbour = Enumerable.Range(0, 10).Select(x=> new List<int>()).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 但是OP的方式仍然更有效,因为`ToArray`不知道阵列的大小. (5认同)
  • 这将为您提供一个包含对同一空列表的十个引用的数组.如果你想要十个独立的空列表,你需要创建它们(可能使用`Enumerable.Range.Select`等). (4认同)