Reputation: 143
I'm beginner in c#, and I'm trying to get a list of values but I get a null object reference.
I have a dictionary
var stripes = new Dictionary<int, List<Transform>>();
and I'm trying to get the list of transforms
foreach (var stripe in stripes)
{
List<Transform> transforms = stripe.Value;
foreach (var treeTransform in transforms)
{
float distance = DistanceToCameraPlane(treeTransform.position);
TreeObject treeObject = new TreeObject();
treeObject.distance = distance;
treeObject.tree = treeTransform;
sortedTrees.Add(treeObject);
}
}
However I get a null object references in treeTransform.position
Upvotes: 0
Views: 94
Reputation: 1892
Try to change this line:
foreach (var stripe in stripes)
to this instead:
foreach (List<Transform> transforms in stripes.Values)
and remove this:
List<Transform> transforms = stripe.Value;
Upvotes: 1
Reputation: 282
foreach (var stripe in stripes)
{
List<Transform> transforms = stripe.Value;
if (transforms != null && transforms.Count > 0)
{
foreach (var treeTransform in transforms)
{
if (treeTransform != null)
{
float distance = DistanceToCameraPlane(treeTransform.position);
TreeObject treeObject = new TreeObject();
treeObject.distance = distance;
treeObject.tree = treeTransform;
sortedTrees.Add(treeObject);
}
}
}
}
Upvotes: 0