Ответ 1
Почти:
Guid[] values = selectedValue.Split('|').Select(s => Guid.Parse(s)).ToArray();
Если какой-либо из Гидов недействителен, это приведет к исключению FormatException.
Если вы хотите игнорировать их, вы можете сделать то, что предлагает Джереми в комментариях:
"9FE027E0-CF95-492F-821C-3F2EC9472657|bla|D94DF6DB-85C1-4312-9702-FB03A731A2B1"
.Split('|')
.Where(g => { Guid temp; return Guid.TryParse(g, out temp); })
.Select(g => Guid.Parse(g))
.ToArray()
Может быть, это может быть оптимизировано дальше (мы по существу разбираем каждый номер дважды) или просто игнорируем, как 97% преждевременные оптимизации, которые не имеют значения.