Stworzyłem klase

    public class Osoba
    {
        public string _key { get; set; }
        public string _value { get; set; }
        public string _value2 { get; set; }

        public Osoba()
        {
        }

        public Osoba(string key, string value)
        {
            _key = key;
            _value = value;
        }

        public Osoba(string key, string value, string value2)
        {
            _key = key;
            _value = value;
            _value2 = value2;
        }
    }

Mam listę par zapisaną na liście Lista2

static List<Osoba> Lista2= new List<Osoba>();

np.

key value
Krzysztof Monika
Kamil Ania
Rafał Ania
Kamil Joanna

Muszę połączyć te pary, które różnią się tylko na jednej pozycji np.
Stąd chciałbym i zapisać ich na liście Lista3 w ten sposób:

key value1 value2
Kamil Rafał Ania
Kamil Joanna Ania

itd...

W jaki sposób najłatwiej to zrobić?