我有一个名为 Permissions
的类,它有几个子类(和一些属性),Group
和 Group.Permission
。
现在,我可以执行以下操作
Permissions u = new Permissions();
u.userId = (Guid)user.ProviderUserKey;
List<int> groups = getGroupsForUserId(u.userId.ToString());
List<Permissions.Group> groupItems = new List<Permissions.Group>();
foreach (int g in groups)
{
Permissions.Group groupItem = new Permissions.Group();
groupItem.group_id = g;
groupItem.Records = getRecordsForGroupId(g);
groupItem.Permissions = getPermissionsForGroupId(g);
groupItems.Add(groupItem);
}
u.Groups = groupItems;
但是,我不能这样做:
Permissions u = new Permissions();
u.userId = (Guid)user.ProviderUserKey;
List<int> groups = getGroupsForUserId(u.userId.ToString());
foreach (int g in groups)
{
Permissions.Group groupItem = new Permissions.Group();
groupItem.group_id = g;
groupItem.Records = getRecordsForGroupId(g);
groupItem.Permissions = getPermissionsForGroupId(g);
u.Groups.Add(groupItem);
}
我的问题是,为什么?
我创建了一个新的 Permissions.Group
对象,添加了值,然后将其添加到 u
对象的 Groups
列表中。在我看来这应该行得通,但是我假设我没有在类里面连接一些东西?我的类只是一个属性列表 property_name { get;放;
所以真的没有什么异国情调的东西。
尝试后者,我在 u.Groups.Add(groupItem);
NullReferenceException
最佳答案
您可能需要在Permissions
构造函数中初始化Permissions.Groups
:
public class Permissions
{
public Permissions()
{
Groups = new List<Group>();
}
public ICollection<Group> Groups { get; set; }
}
关于c# - "x.Groups = list"有效但 "x.Groups.Add(listItem)"抛出空引用异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724505/