ragia
ragia

Reputation: 143

Getting a list of values from dictionary

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

Answers (2)

Łukasz Rejman
Łukasz Rejman

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

Lokesh B R
Lokesh B R

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

Related Questions