Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么创建容量为0的新列表时仍有1个条目?_C#_.net - Fatal编程技术网

C# 为什么创建容量为0的新列表时仍有1个条目?

C# 为什么创建容量为0的新列表时仍有1个条目?,c#,.net,C#,.net,我正在使用Unity,我想创建一个空列表,但我不能这样做。我试过: public List<Room> roomsInScene = new List<Room>(); // default capacity is 0 但我更希望我可以创建一个空列表。我错过什么了吗 编辑: 我正在用VisualStudio进行调试,但行后没有代码 public List<Room> roomsInScene = new List<Room>(0); publi

我正在使用Unity,我想创建一个空列表,但我不能这样做。我试过:

public List<Room> roomsInScene = new List<Room>(); // default capacity is 0
但我更希望我可以创建一个空列表。我错过什么了吗

编辑: 我正在用VisualStudio进行调试,但行后没有代码

public List<Room> roomsInScene = new List<Room>(0);
public List roomsInScene=新列表(0);
断点显示1个空条目。罪魁祸首:如果您熟悉Unity,它可能会在外部覆盖声明字段的值。

我为这种情况道歉,并感谢大家抽出时间。我应该删除这个问题,但我不能不提供解释。

如果以下有一个条目,则有问题:

public List<Room> roomsInScene = new List<Room>(); 
结果:0

如果您尝试在零位置访问某个项,它将失败,很可能索引范围超出范围:

var a = roomsInScene[0];

如果不是这种情况,请重新启动Visual studio和/或清除解决方案,删除bin/obj文件夹和suo文件,以导致某些内容损坏。实例化一个列表将创建一个空列表,其中Count==0且没有项目。

创建一个新列表确实会创建一个空列表。您是如何观察该列表中的条目的?请提供一个完整且最少的示例来说明问题。在空列表上调用
.Any()
是否返回true或false?
Count
属性是什么样子的?第一个或默认值如何。我从来没有看过列表的内部,我只看过记录在案的行为。导致您出现问题的代码的其余部分是什么?容量不是列表长度的指标。结果表明,Unity在初始化之后一直覆盖
RoomsScene
的值。我在在线编译器上试用过,它正确地按照您、我和所有人的预期工作。我更新了问题。
public List<Room> roomsInScene = new List<Room>(); 
Debug.Print(roomsInScene.Count);
var a = roomsInScene[0];