Linq selecciona cadenas de la lista cuando se cumple la condición y guarda el índice

Tengo una lista de cadenas

List<string> lstOne = new List<string>() { "January:1", "February", "March:4"};

Y estoy filtrando las cadenas que contienen: con este código

var withcolumns = lstOne.Find(t => t.Contains(':'));

y estoy obteniendo una nueva lista con { "January:1", "March:4"}

Quiero seleccionar en una nueva lista los valores January:1 y la March:4 pero también guarde los índices de entonces en la lista anterior para que el resultado sea

"0" "Enero: 1"
"2" "Marzo: 4"

Puedo ser simple o complicado, pero en este momento mi cerebro no funciona para resolver este problema.

preguntado el 30 de enero de 12 a las 20:01

2 Respuestas

list.Select((item, index) => new { item, index })
    .Where(o => o.item.Contains(':'))

Respondido el 31 de enero de 12 a las 00:01

¿No estás seguro de lo que quieres como resultado? una lista de cadenas? o ?

pero de todos modos ..... con el índice prefijado a su cadena ...

List<string> lstOne = new List<string>() { "January:1", "February", "March:4" };
var list = lstOne.Select((s, i) => i+ " " + s ).Where(s => s.Contains(":")).ToList();

Respondido el 31 de enero de 12 a las 00:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.