Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método String.Join<T>(String, IEnumerable<T>)

 

Publicado: octubre de 2016

Concatena los miembros de una colección, usando el separador especificado entre todos los miembros.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(false)]
public static string Join<T>(
	string separator,
	IEnumerable<T> values
)

Parámetros

separator
Type: System.String

Cadena que se va a usar como separador. separator se incluye en la cadena devuelta solo si values tiene más de un elemento.

values
Type: System.Collections.Generic.IEnumerable<T>

Colección que contiene los objetos que se van a concatenar.

Valor devuelto

Type: System.String

Cadena que consta de los miembros de values delimitados por la cadena de separator. Si values no tiene ningún miembro, el método devuelve String.Empty.

Parámetros de tipo

T

Tipo de los miembros de values.

Exception Condition
ArgumentNullException

El valor de values es null.

Si separator es null, una cadena vacía (String.Empty) se utiliza en su lugar. Si cualquier miembro del values es null, se utiliza una cadena vacía en su lugar.

Join<T>(String, IEnumerable<T>)es un método cómodo que le permite concatenar cada miembro de un IEnumerable<T> recopilación sin convertirlos primero en cadenas. La representación de cadena de cada objeto de la IEnumerable<T> se deriva la colección mediante una llamada a ese objeto ToString método.

Este método es especialmente útil con expresiones de consulta de Language-Integrated Query (LINQ). Por ejemplo, el código siguiente define un método muy sencillo Animal clase que contiene el nombre de un animal y el orden al que pertenece. A continuación, define un List<T> objeto que contiene un número de Animal objetos. El Enumerable.Where<TSource> método de extensión se llama para extraer el Animal objetos cuyo Order propiedad es igual a "Roedores". El resultado se pasa a la Join<T>(String, IEnumerable<T>) método.

using System;
using System.Collections.Generic;
using System.Linq;

public class Animal
{
   public string Kind;
   public string Order;

   public Animal(string kind, string order)
   {
      this.Kind = kind;
      this.Order = order;
   }

   public override string ToString()
   {
      return this.Kind;
   }
}

public class Example
{
   public static void Main()
   {
      List<Animal> animals = new List<Animal>();
      animals.Add(new Animal("Squirrel", "Rodent"));
      animals.Add(new Animal("Gray Wolf", "Carnivora"));
      animals.Add(new Animal("Capybara", "Rodent"));
      string output = String.Join(" ", animals.Where( animal => 
                      (animal.Order == "Rodent")));
      Console.WriteLine(output);  
   }
}
// The example displays the following output:
//      Squirrel Capybara

En el ejemplo siguiente se usa el algoritmo criba de Eratóstenes para calcular los números primos que son menores o iguales que 100. Asigna el resultado a un List<T> objeto de tipo entero, que, a continuación, pasa a la Join<T>(String, IEnumerable<T>) método.

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      int maxPrime = 100;
      List<int> primes = GetPrimes(maxPrime);
      Console.WriteLine("Primes less than {0}:", maxPrime);
      Console.WriteLine("   {0}", String.Join(" ", primes));
   }

   private static List<int> GetPrimes(int maxPrime)
   {
      Array values = Array.CreateInstance(typeof(int), 
                              new int[] { maxPrime - 1}, new int[] { 2 });
      // Use Sieve of Eratosthenes to determine prime numbers.
      for (int ctr = values.GetLowerBound(0); ctr <= (int) Math.Ceiling(Math.Sqrt(values.GetUpperBound(0))); ctr++)
      {

         if ((int) values.GetValue(ctr) == 1) continue;

         for (int multiplier = ctr; multiplier <=  maxPrime / 2; multiplier++)
            if (ctr * multiplier <= maxPrime)
               values.SetValue(1, ctr * multiplier);
      }      

      List<int> primes = new List<int>();
      for (int ctr = values.GetLowerBound(0); ctr <= values.GetUpperBound(0); ctr++)
         if ((int) values.GetValue(ctr) == 0) 
            primes.Add(ctr);
      return primes;
   }   
}
// The example displays the following output:
//    Primes less than 100:
//       2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 7.1
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: