At first I was using Regex.Replace but I figured it was better to give up and just:
var commaSeparated = string.Join(", ", hyperlinks);
var lastCommaIndex = commaSeparated.LastIndexOf(",", StringComparison.Ordinal);
var formatted = commaSeparated.Remove(lastCommaIndex, 1).Insert(lastCommaIndex, " and");