Así que tengo una lista de cadenas que se parece a esto:Linq: Cómo llegar a durar segundos
var ls=new List<string>()
{
"100",
"101-102-1002",
"105-153-1532-1532",
"105-1854-45-198",
"180-95-45-200"
};
que desea obtener el último segundo de la cadena de la división. Así que mi salida se parece a esto:
null,
102,
1532,
45,
45
tengo una solución para ello que tiene este aspecto:
ls.Select (l =>l.Split('-').Select ((s,i) =>new {s,i})
.OrderByDescending (x=>x.i).Skip(1).Take(1))
creo que esta solución podría ser complejo para esta tarea simple. Entonces mi pregunta es: ¿Alguno de ustedes tiene una solución más simple para este problema?
El resultado es incorrecto o que no entiendo la pregunta: ¿No debería ser: nulo, 102,153,1235? –
¡Su solución se ve bien para mí! – ColinE
Sí, debería ser la penúltima cadena dividida. Si no hay segundo último, entonces debería devolver nulo. – Arion