gpt4 book ai didi

c# - 使用列表的 ArgumentNullException

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:21 25 4
gpt4 key购买 nike

我正在开发 MVC 4 C# 互联网应用程序。

我有一个 MapLocationCompany 类和一个 MapLocation 类。我在每个 MapLocationCompany 对象之后都有一个 MapLocation 对象列表。

这是我当前的代码:

public class MapLocationCompany
{
public List<MapLocation> MapLocationList { get; set; }
}

在数据库中创建 MapLocationCompany 后,我希望将 MapLocation 对象添加到此 MapLocationCompany。

在将任何 MapLocation 项目添加到 MapLocationCompany 之前,我需要 MapLocationList。

这是我的代码:

public IEnumerable<MapLocation> getMapLocationsForCompany(int id)
{
MapLocationCompany mapLocationCompany = getMapLocationCompany(id);
return mapLocationCompany.MapLocationList.ToList();
}

我收到这个错误:

System.ArgumentNullException was unhandled by user code
Value cannot be null

最佳答案

在类的构造函数中添加内部列表的初始化

public class MapLocationCompany
{
[Key]
public int id { get; set; }
[HiddenInputAttribute]
public string UserName { get; set; }
public string CompanyName { get; set; }
public double MapStartupLatitude { get; set; }
public double MapStartupLongitude { get; set; }
public int MapInitialZoomIn { get; set; }
public List<MapLocation> MapLocationList { get; set; }

public void MapLocationCompany()
{
MapLocationList = new List<MapLocation>();
}
}

我们看不到 getMapLocationCompany(id); 中的代码是什么,但我想它以某种方式创建了类 MapLocationCompany 的实例并返回这个实例。但在默认情况下,这个新实例将其属性 MapLocationList 设置为 null,因此,如果您尝试使用该属性 (.ToList()),您会得到 Null Reference Exception。将上面的代码添加到构造函数有助于避免此问题。 List 仍然是空的,您需要填充它,但是保存列表的内部变量已初始化,您可以使用它来添加新元素。

最后一点,错误是由您对 ToList() 的引用引起的,但是 MapLocationList 已经定义为一个列表,因此您可以将其删除。

关于c# - 使用列表的 ArgumentNullException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644435/

25 4 0
文章推荐: python - 比较两个列表并找到唯一值
文章推荐: java - 使用 JdbcTemplate 将关系数据库映射到每个包含一个 List 的 List