Decir que tengo una serie de string
s como esto:En LINQ, ¿puedo seleccionar varios elementos?
string [] foos = {
"abc",
"def",
"ghi"
};
Quiero una nueva colección que contiene cada cadena y su inversa. Así, el resultado debería ser:
"abc",
"cba",
"def",
"fed",
"ghi",
"ihg"
tan sólo pudiera iterar a través de la matriz, pero esto es bastante torpe:
string Reverse (string str)
{
return new string (str.Reverse().ToArray());
}
List<string> results = new List<string>();
foreach (string foo in foos) {
results.Add (foo);
results.Add (Reverse(str));
}
¿Hay una manera de hacer esto en LINQ? Algo así como
var results = from foo in foos
select foo /* and also */ select Reverse(foo)
Gracias! Terminé usando 'foos.Concat (foos.Select (Reverse));', ya que el orden no importa, pero el contenido de las cláusulas 'from' anidadas es una buena información para guardar en el futuro. –