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];
}