string LongestCommon( IEnumerable<string> values ) { string longest = null; foreach ( var value in values ) { longest = LongestCommon( longest, value ); } return longest; }