Hay una manera fácil de convertir una matriz de cadena en una cadena concatenada?

Por ejemplo, tengo una matriz de cadena:

new string[]{"Apples", "Bananas", "Cherries"};

Y quiero conseguir una sola cadena:

"Apples,Bananas,Cherries"

O "Apples&Bananas&Cherries" o "Apples\Bananas\Cherries"

4 Comentarios

  1. 71

    Simple…

    string[] theArray = new string[]{"Apples", "Bananas", "Cherries"};
    string s = string.Join(",",theArray);
    • Hey, yo sabía que realmente. Es muy caliente en la oficina hoy y no he tenido un café! Gracias.
    • Aunque se siente un poco extraño. Se cree que es más una acción en una matriz de una acción en una cadena, por lo que sería más «natural» para mí, el aspecto de dicha función en la clase array. Pero gracias, no sabía que había una manera de unirse a un string[] (así que no hay más para construcciones)! +1
    • Pero sólo se aplicaría a string[], no a los demás – por lo que no encaja perfectamente en el «normal» de la matriz de la aplicación. Pero se podría añadir como un C# 3.0 método de extensión a this string[].
    • ¿Por qué debe usted sólo será capaz de utilizar string[] y no cualquier tipo de matriz. Creo que sería posible utilizar el método ToString() de los objetos de la matriz (al menos yo lo haría de esa manera) así que usted también puede Unirse a las matrices de enteros, enteros largos y complejos de objetos (incluso sus propios objetos al aplicar el método ToString). No sé cómo otros idiomas resolver esto, pero porque no estaba en la clase array nunca he notado (y la creación de una era más rápido que hacer una investigación en internet).
    • A continuación, escriba un Join<T>(this T[] array) método de extensión ;-p
  2. 10

    La elección obvia es, por supuesto, de la Cadena.Método de combinación.

    Aquí un LINQy alternativa:

    string.Concat(fruit.Select((s, i) => (i == 0 ? "" : ",") + s).ToArray())

    (No es realmente útil, ya que se erige como se hace lo mismo que el método de combinación, pero tal vez para la expansión, donde el método no puede ir, como la alternancia de los separadores…)

  3. 1

    Puede utilizar Agregado, se aplica un acumulador en función de más de una secuencia.

    string[] test = new string[]{"Apples", "Bananas", "Cherries"};
    char delemeter = ',';
    string joinedString = test.Aggregate((prev, current) => prev + delemeter + current);

Dejar respuesta

Please enter your comment!
Please enter your name here