Ну, для однострочника вы могли бы сделать
lookupLines.OrderBy(kv => kv.Value.Gruppe.StartsWith("SF") ? 2 : 1).First();
Но я думаю, что ваше решение лучше передает ваши намерения, хотя его можно упростить до:
LookupLine lookup = lookupLines.FirstOrDefault(kv => !kv.Value.Gruppe.StartsWith("SF"));
if(lookup == null) {
lookup = lookupLines.First();
}
FirstRelevantGroup = lookup.Value.Gruppe;
СейчасВы можете превратить все вышеперечисленное в единую, но опять же потеряете читабельность:
FirstRelevantGroup = (
lookupLines.FirstOrDefault(kv => !kv.Value.Gruppe.StartsWith("SF"))
?? lookupLines.First()
).Value.Gruppe;