获取C#中的数组的长度

时间:2015-12-12 01:48:10

标签: c# arrays class

我有这样的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)。请帮忙。抱歉我的英文。

2 个答案:

答案 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属性返回数组的大小,但它已预先初始化为固定大小,因此您在代码中看到了结果。