I have the following problem: I have List of strings. I also have a class with a string property called Name, and a constructor for the class that takes a string as its one argument. So, I can create a List of objects by iterating over the List of strings.

Now, I'd like to change the Name property of one of these objects, and as a result update the original List of strings automagically. Is this possible? I can't assume that the List of strings have unique values. Here's some basic code that does not solve my problem, but hopefully illustrates what I need to do:

```
using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<string> nameList = new List<string>(new string[] {"Andy", "Betty"});
        List<Person> personList = new List<Person>();
        foreach (string name in nameList)
        {
            Person newPerson = new Person(name);
            personList.Add(newPerson);
        }

        foreach (Person person in personList)
        {
            Console.WriteLine(person.Name);
        }

        /* Note: these next two line are just being used to illustrate
        changing a Person's Name property. */ 
        Person aPerson = personList.First(p => p.Name == "Andy");
        aPerson.Name = "Charlie";

        foreach (string name in nameList)
        {
            Console.WriteLine(name);
        }

        /* The output of this is:
        Andy
        Betty
        Andy
        Betty

        but I would like to get:
        Charlie
        Betty
        Andy
        Betty
    }

    public class Person
    {
        public string Name;

        public Person(string name)
        {
            Name = name;
        }
    }
}

```

Can anyone suggest the best approach to this problem?