使用linq查询类对象
我正在尝试查询一个类对象 我的班级:使用linq查询类对象,linq,class,object,lambda,Linq,Class,Object,Lambda,我正在尝试查询一个类对象 我的班级: public class Result { public List<Driver> Drivers { get; set; } public List<Vehicle> Vehicles { get; set; } } 公共类结果 { 公共列表驱动程序{get;set;} 公共列表车辆{get;set;} } 我有一个方法,我正在将这个类的对象传递给它 public string BuildRequ
public class Result
{
public List<Driver> Drivers { get; set; }
public List<Vehicle> Vehicles { get; set; }
}
公共类结果
{
公共列表驱动程序{get;set;}
公共列表车辆{get;set;}
}
我有一个方法,我正在将这个类的对象传递给它
public string BuildRequestXML(Result input)
{
var driverNames = new List<Name>();
input.Drivers.ForEach(cd => driverNames.Add(cd.Name));
}
公共字符串BuildRequestXML(结果输入)
{
var driverNames=新列表();
input.Drivers.ForEach(cd=>driverNames.Add(cd.Name));
}
在上述函数的第2行代码中,我得到的对象引用未设置为实例错误。提前谢谢。
BB.我不太清楚您为什么会遇到这个问题,但是,更好的方法是使用选择“投影”,如下所示:
driverNames = input.Drivers.Select(d => d.Name).ToList();
我不太清楚您为什么会遇到这个问题,但是,更好的方法是使用如下选择的“投影”:
driverNames = input.Drivers.Select(d => d.Name).ToList();
您必须进行调试才能找到它是哪一个,但该异常可能是因为
input
或input.Drivers
为空。您甚至可以在驱动程序
列表中有一个空的驱动程序
至于您的driversName
列表,您可以将其重写为
var driverNames = input.Drivers.Select(driver => driver.Name).ToList();
您必须进行调试才能找到它是哪一个,但该异常可能是因为
input
或input.Drivers
为空。您甚至可以在驱动程序
列表中有一个空的驱动程序
至于您的driversName
列表,您可以将其重写为
var driverNames = input.Drivers.Select(driver => driver.Name).ToList();
你试过调试它吗?检查异常堆栈跟踪?VS中的断点?有了这样的描述,这似乎是一个最容易调试的错误。你试过调试它吗?检查异常堆栈跟踪?VS中的断点?有了这样的描述,这似乎是一个最容易调试的错误。谢谢安东尼。我看到我的驱动程序列表计数=1。我仍然收到这个错误。请看附在原始问题上的截图。@BumbleBee-你从@ColinE和@Anthony那里得到了很好的建议。尝试在没有LINQ的情况下重写它(使用foreach循环)并调试它。你会找到你的虫子的。谢谢你,安东尼。我看到我的驱动程序列表计数=1。我仍然收到这个错误。请看附在原始问题上的截图。@BumbleBee-你从@ColinE和@Anthony那里得到了很好的建议。尝试在没有LINQ的情况下重写它(使用foreach循环)并调试它。你会找到你的虫子的。科林,谢谢。输入和驱动程序不为空。我还是犯了同样的错误。科林,谢谢你。输入和驱动程序不为空。但我还是犯了同样的错误。