Datenfeld (Array) an eine Listbox binden

public struct Person
{
    private string _sVorName;
    private string _sNachName;
 
    public Person(string sVorName, string sNachName)
    {
        _sVorName = sVorName;
        _sNachName = sNachName;
    }
 
    public string VorName
    {
          get { return _sVorName; }
    }
 
    public string NachName
    {
          get { return _sNachName; }
    }
}

// Array erstellen
Person[] Personen = new Person[] { new Person("Horst", "Müller"), new Person("Sieglinde", "Hausmann") };

// Datenquelle zuordnen
ListBox1.DataSource = Personen;

// angezeigter Wert sind Werte aus der Property "NachName"
ListBox1.DisplayMember = "NachName";

// Schlüsselspalte ist die Property "VorName"
ListBox1.ValueMember = "VorName";

// Zugriff auf die Schlüsselspalte
ListBox1.SelectedValue = "Wert"; // String oder Interger, je nach Typ

oder

string sWert = ListBox1.SelectedValue;