c # cambiar la cadena en un bucle de cadena foreach

Estoy intentando recorrer las cadenas en una lista con un bucle foreach, pero no sé cómo cambiar el elemento al que se hace referencia. ¿Cómo puedo cambiar s en la lista … por ejemplo, a continuación, quiero agregar “- “al final de cada cadena, s en myStringList

 foreach(string s in myStringList) { s = s + "-"; } 

No puedo hacerle las cosas a s porque es una “variable de iteración de foreach”, ¿no puedo cambiarla a medida que avanzo?

¿Tengo que usar un int para contar a través?

Estoy seguro de que hay una manera más sencilla …

Puedes hacer esto con Linq muy fácilmente:

 var newStringList = myStringList .Select(s => s + "-") .ToList(); 

Si realmente desea modificar la lista existente, puede usar un bucle clásico for , por ejemplo:

 for (var i = 0; i < myStringList.Count; i++) { myStringList[i] = myStringList[i] + "-"; } 

Prueba esto

 List listString = new List() { "1","2","3"}; listString=listString.Select(x => x + "-").ToList();