82 votos

Borrar el último carácter de la cadena

Estoy recuperando un montón de información en una lista, vinculada a una base de datos.

Quiero crear una cadena de grupos, para alguien que esté conectado a la página web.

Uso esto para probar... Pero esto no es dinámico, es realmente malo:

Estrangulamientos de cadena = "6";

Quiero usar esto ahora. Pero la cadena devuelta es algo así como 1,2,3,4,5,

        //groupIds.ForEach((g) =>
        //{
        //    strgroupids = strgroupids  + g.ToString() + ",";
        //    strgroupids.TrimEnd(',');
        //});

        //strgroupids.TrimEnd(new char[] { ',' });

Quiero borrar el, después del 5 pero definitivamente no funciona.. ¿Alguien puede ayudarme?

Muchas gracias.

237voto

sll Puntos 30638
strgroupids = strgroupids.Remove(strgroupids.Length - 1);

MSDN:

String.Remove(Int32):

Borra todos los caracteres de esta cadena que empiezan en un determinado y continuando a través de la última posición

27voto

Øyvind Bråthen Puntos 25211

¿Qué tal si lo hacemos de esta manera

strgroupids = string.Join( ",", groupIds );

A lote más limpio.

Se añadirán todos los elementos del interior groupIds con un ',' entre cada uno, pero no pondrá un ',' al final.

13voto

Andy Johnson Puntos 4683

Las cuerdas en Do# son inmutables. Cuando en tu código haces strgroupids.TrimEnd(','); o strgroupids.TrimEnd(new char[] { ',' }); el strgroupids cadena no se modifica .

Necesitas hacer algo como strgroupids = strgroupids.TrimEnd(','); en su lugar.

Para citar a aquí :

Las cuerdas son inmutables el contenido de un objeto de cadena no puede ser cambiado después de que el objeto es creado, aunque la sintaxis hace que parece como si pudieras hacer esto. Por ejemplo, cuando escribes este código, el compilador en realidad crea un nuevo objeto de cadena para sostener el nuevo secuencia de caracteres, y ese nuevo objeto se asigna a b. El la cadena "h" es entonces elegible para la recogida de basura.

4voto

Kieren Johnstone Puntos 19499

Elimina las comillas:

while (strgroupids.EndsWith(","))
    strgroupids = strgroupids.Substring(0, strgroupids.Length - 1);

Esto es al revés, sin embargo, escribiste el código que añade la coma en primer lugar. Deberías usar string.Join(",",g) en su lugar, asumiendo g es un string[] . Dale un nombre mejor que g también!

2voto

Gary.S Puntos 4546

Como alternativa a añadir una coma para cada artículo podrías usar String.Join:

var strgroupids = String.Join(",",  groupIds);

Esto añadirá el separador ("," en este caso) entre cada elemento del Conjunto.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X