class GroupMember { public int PrimaryKey; public string FirstName; public string LastName; public long GuestNo; public string Notes; public GroupMember(int primaryKey, string firstName, string lastName, long guestNo, string notes) { PrimaryKey = primaryKey; FirstName = firstName; LastName = lastName; GuestNo = guestNo; Notes = notes; } internal void DoWork(MKVP mkvp) { new Switch() .Case(() => mkvp.Key == "FIRST", delegate {FirstName = mkvp.Value; }) .Case(() => mkvp.Key == "LAST", delegate { LastName = mkvp.Value; }) .Default(delegate { throw new Exception("No otherwise/default"); }) .Execute(); } } static class Test_Switch { internal static void Go() { GroupMember groupMember = new GroupMember(1, "Gregory", "Adam", 234, "none"); MKVP mkvp = new MKVP("LAST", "Alan"); groupMember.DoWork(mkvp); Console.WriteLine("{0} {1} ", groupMember.FirstName, groupMember.LastName); } }