我有这样的Node类:
public class Node {
public string name;
public int val;
public string op;
public Node left;
public Node right;
public Node(string name, int val, string op, Node left, Node right) {
this.name = name;
this.val = val;
this.op = op;
this.left = left;
this.right = right;
}
public Node() {
name = null;
val = 0;
op = null;
left = null;
right = null;
}
}
然后在Main方法中我声明如下:
public static void Main() {
Node[] arr = new Node[500];
arr[0] = new Node("asd",0,null,null,null);
WriteLine(arr.Length);
}
虽然我向数组声明了一个新节点,但我的输出是500(我的期望值是1)。请帮忙。抱歉我的英文。
答案 0 :(得分:4)
使用List代替,数组是固定长度。
public static void Main() {
List<Node> arr = new List<Node>();
arr.Add(new Node("asd",0,null,null,null));
WriteLine(arr.Count);
}
答案 1 :(得分:1)
计算非空的项目:
arr.Count(n => n != null)
Length
属性返回数组的大小,但它已预先初始化为固定大小,因此您在代码中看到了结果。