var myArray = S.Select(x => new [] { x.A, x.B })
.SelectMany(x => x)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct()
.ToArray();
anterior sólo funciona si la restricción única se encuentra en la colección resultante - si necesita una restricción única en el conjunto de calificaciones de A y B a la siguiente funcionaría:
var As = S.Select(x => x.A)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct();
var Bs = S.Select(x => x.B)
.Where(x=> !string.IsNullOrEmpty(x))
.Distinct();
var myArray = new [] {As, Bs} .SelectMany (x => x) .ToArray();
var myArray = As.Concat(Bs).ToArray();
@Joey: Sí, actualizado - suposición es la singularidad que se requiere en la A y B no está en la colección resultante, de lo contrario primera aproximación sería mejor – BrokenGlass
Para el registro, 'As.Concat (B)' haría haga lo mismo que el 'SelectMany' –
@Claus Jørgensen: Doh! Y es mucho más simple y legible, editado que en. – BrokenGlass