C#-使用包含数组模型的模型

C#-使用包含数组模型的模型,c#,arrays,model,C#,Arrays,Model,我有一个模型,我正试图引用它,并获得这种类型的数组 public class TestModel { public string Name { get; set; } public Guid Id { get; set; } public List<Conditions> Conditions { get; set; } } 模型以主方法填充: private static IEnumerable<TestModel> testModel= ne

我有一个模型,我正试图引用它,并获得这种类型的数组

public class TestModel
{
    public string Name { get; set; }
    public Guid Id { get; set; }
    public List<Conditions> Conditions { get; set; }
}
模型以主方法填充:

private static IEnumerable<TestModel> testModel= new TestModel[] { };
public static void Main(string[] args)
{
    Console.WriteLine("Start");
    Console.WriteLine("Load Test Data");
    using (var r = new StreamReader(@"C:\Production\test.json"))
    {
        string json = r.ReadToEnd();
        testModel = JsonConvert.DeserializeObject<TestModel[]>(json);
    }
    GetTests();
    Console.WriteLine("End");
    Console.Read();
}
private static IEnumerable testModel=newtestmodel[]{};
公共静态void Main(字符串[]args)
{
控制台写入线(“开始”);
Console.WriteLine(“负载测试数据”);
使用(var r=newstreamreader(@“C:\Production\test.json”))
{
字符串json=r.ReadToEnd();
testModel=JsonConvert.DeserializeObject(json);
}
GetTests();
控制台。写入线(“结束”);
Console.Read();
}

我觉得这应该在读取Json文件并将其放入模型时填充

正如您所说:您没有实例化数组

例如,您可以在构造函数中执行该操作,使用setter或直接内联执行(需要C#6.0):


“length”是数组的长度。如果你不知道这个大小,你可以考虑使用一个列表或类似的东西。

为每个属性切换到列表。我将用正确的答案编辑上面的代码,感谢@Thomas D.为我指出了这个方向

可能的重复不会这么想,我知道这是一个空引用异常,我只是想看看在这种情况下,是否有办法做到这一点,而不必为每个将使用此模型的类实例化所有数组。要使用对象,必须实例化它,如何使用尚未创建的内容。换句话说,你不能在蛋糕做出来之前就吃掉它。正如@Reniuz所说,你可以使用C#6特性内联实例化它,在构造函数中实例化它,或者在实例化的地方使用支持字段。无论哪种方式,您都必须实例化对象才能使用它。此外,如果您希望人们帮助显示给出错误的实际代码,那么您提供的代码与您得到的错误无关。但是,它仍然是一个副本。
private static ArrayList GetTests()
{
    Console.WriteLine("Get tests");

    foreach (TestModel test in testModel)
    {
        var conditions = test.Conditions.Disciplines;
        Console.WriteLine("");
        Console.WriteLine("testID: " + test.Id);
    }

    return networks;
}
private static IEnumerable<TestModel> testModel= new TestModel[] { };
public static void Main(string[] args)
{
    Console.WriteLine("Start");
    Console.WriteLine("Load Test Data");
    using (var r = new StreamReader(@"C:\Production\test.json"))
    {
        string json = r.ReadToEnd();
        testModel = JsonConvert.DeserializeObject<TestModel[]>(json);
    }
    GetTests();
    Console.WriteLine("End");
    Console.Read();
}
public class Conditions
{
    public string[] Country { get; set; } = new string[length];
    public int[] Grades { get; set; } = new int[length];
    public string[] Disciplines { get; set; } = new string[length];
}