String.Join String.Join String.Join String.Join Method

定義

串連指定之陣列的項目或集合的成員,並在每個項目或成員之間使用指定的分隔符號。Concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member.

多載

Join(Char, Object[]) Join(Char, Object[]) Join(Char, Object[]) Join(Char, Object[])
Join(Char, String[]) Join(Char, String[]) Join(Char, String[]) Join(Char, String[])
Join(String, IEnumerable<String>) Join(String, IEnumerable<String>) Join(String, IEnumerable<String>) Join(String, IEnumerable<String>)

串連類型 IEnumerable<T> 之已建構的 String 集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member.

Join(String, Object[]) Join(String, Object[]) Join(String, Object[]) Join(String, Object[])

串連物件陣列的項目,並在每個項目之間使用指定的分隔符號。Concatenates the elements of an object array, using the specified separator between each element.

Join(String, String[]) Join(String, String[]) Join(String, String[]) Join(String, String[])

串連字串陣列的所有項目,並在每個項目之間使用指定的分隔符號。Concatenates all the elements of a string array, using the specified separator between each element.

Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32)
Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32)

串連字串陣列的指定項目,並在每個項目之間使用指定的分隔符號。Concatenates the specified elements of a string array, using the specified separator between each element.

Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>)
Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>)

串連集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a collection, using the specified separator between each member.

Join(Char, Object[]) Join(Char, Object[]) Join(Char, Object[]) Join(Char, Object[])

public:
 static System::String ^ Join(char separator, ... cli::array <System::Object ^> ^ values);
public static string Join (char separator, params object[] values);
static member Join : char * obj[] -> string
Public Shared Function Join (separator As Char, ParamArray values As Object()) As String

參數

separator
Char Char Char Char
values
Object[]

傳回

Join(Char, String[]) Join(Char, String[]) Join(Char, String[]) Join(Char, String[])

public:
 static System::String ^ Join(char separator, ... cli::array <System::String ^> ^ value);
public static string Join (char separator, params string[] value);
static member Join : char * string[] -> string
Public Shared Function Join (separator As Char, ParamArray value As String()) As String

參數

separator
Char Char Char Char
value
String[]

傳回

Join(String, IEnumerable<String>) Join(String, IEnumerable<String>) Join(String, IEnumerable<String>) Join(String, IEnumerable<String>)

串連類型 IEnumerable<T> 之已建構的 String 集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member.

public:
 static System::String ^ Join(System::String ^ separator, System::Collections::Generic::IEnumerable<System::String ^> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Join (string separator, System.Collections.Generic.IEnumerable<string> values);
static member Join : string * seq<string> -> string
Public Shared Function Join (separator As String, values As IEnumerable(Of String)) As String

參數

separator
String String String String

要當作分隔符號的字串。separatorThe string to use as a separator.separator 只有在 values 有一個以上的項目時,才會包含在傳回的字串中。is included in the returned string only if values has more than one element.

values
IEnumerable<String>

包含要串連之字串的集合。A collection that contains the strings to concatenate.

傳回

字串,由 values 中的成員組成,且每個成員之間都會以 separator 字串分隔。A string that consists of the members of values delimited by the separator string. 如果 values 沒有成員,方法會傳回 EmptyIf values has no members, the method returns Empty.

例外狀況

範例

下列範例會使用 Eratosthenes 演算法的 Eratosthenes 來計算小於或等於100的質數。The following example uses the Sieve of Eratosthenes algorithm to calculate the prime numbers that are less than or equal to 100. 它會將結果指派給List<T>類型String的物件, 然後將Join(String, IEnumerable<String>)它傳遞給方法。It assigns the result to a List<T> object of type String, which it then passes to the Join(String, IEnumerable<String>) method.

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
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim maxPrime As Integer = 100
      Dim primes As List(Of String) = GetPrimes(maxPrime)
      Console.WriteLine("Primes less than {0}:", maxPrime)
      Console.WriteLine("   {0}", String.Join(" ", primes))
   End Sub
   
   Private Function GetPrimes(maxPrime As Integer) As List(Of String)
      Dim values As Array = Array.CreateInstance(GetType(Integer), _
                              New Integer() { maxPrime - 1}, New Integer(){ 2 }) 
        ' Use Sieve of Eratosthenes to determine prime numbers.
      For ctr As Integer = values.GetLowerBound(0) To _
                           CInt(Math.Ceiling(Math.Sqrt(values.GetUpperBound(0))))
         If CInt(values.GetValue(ctr)) = 1 Then Continue For
         
         For multiplier As Integer = ctr To maxPrime \ 2
            If ctr * multiplier <= maxPrime Then values.SetValue(1, ctr * multiplier)
         Next   
      Next      
      
      Dim primes As New List(Of String)
      For ctr As Integer = values.GetLowerBound(0) To values.GetUpperBound(0)
         If CInt(values.GetValue(ctr)) = 0 Then primes.Add(ctr.ToString())
      Next            
      Return primes
   End Function   
End Module
' 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

備註

如果separator String.Emptynull, 則會改用空字串 ()。If separator is null, an empty string (String.Empty) is used instead. 如果的values任何成員為null, 則會改用空字串。If any member of values is null, an empty string is used instead.

Join(String, IEnumerable<String>)是一個便利的方法, 可讓您串連IEnumerable(Of String)集合中的每個專案, 而不需要先將元素轉換成字串陣列。Join(String, IEnumerable<String>) is a convenience method that lets you concatenate each element in an IEnumerable(Of String) collection without first converting the elements to a string array. 它特別適用于語言整合式查詢 (LINQ) 查詢運算式。It is particularly useful with Language-Integrated Query (LINQ) query expressions. 下列範例會將包含List(Of String)字母大小寫字母的物件, 傳遞至 lambda 運算式, 以選取等於或大於特定字母的字母 (在此範例中為 "M")。The following example passes a List(Of String) object that contains either the uppercase or lowercase letters of the alphabet to a lambda expression that selects letters that are equal to or greater than a particular letter (which, in the example, is "M"). 方法所傳回IEnumerable(Of String) 的集合會傳遞至方法,將結果顯示為單一字串。Join(String, IEnumerable<String>) Enumerable.WhereThe IEnumerable(Of String) collection returned by the Enumerable.Where method is passed to the Join(String, IEnumerable<String>) method to display the result as a single string.

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

public class Example
{
   public static void Main()
   {
      string output = String.Join(" ", GetAlphabet(true).Where( letter => 
                      letter.CompareTo("M") >= 0));
      Console.WriteLine(output);  
   }

   private static List<string> GetAlphabet(bool upper)
   {
      List<string> alphabet = new List<string>();
      int charValue = upper ? 65 : 97;
      for (int ctr = 0; ctr <= 25; ctr++)
         alphabet.Add(Convert.ToChar(charValue + ctr).ToString());
      return alphabet; 
   }
}
// The example displays the following output:
//      M N O P Q R S T U V W X Y Z
Imports System.Collections.Generic
Imports System.Linq

Module modMain
   Public Sub Main()
      Dim output As String = String.Join(" ", GetAlphabet(True).Where(Function(letter) _
                                                         letter >= "M"))
        
      Console.WriteLine(output)                                     
   End Sub
   
   Private Function GetAlphabet(upper As Boolean) As List(Of String)
      Dim alphabet As New List(Of String)
      Dim charValue As Integer = CInt(IIf(upper, 65, 97))
      For ctr As Integer = 0 To 25
         alphabet.Add(ChrW(charValue + ctr).ToString())
      Next
      Return alphabet 
   End Function
End Module
' The example displays the following output:
'      M N O P Q R S T U V W X Y Z
另請參閱

Join(String, Object[]) Join(String, Object[]) Join(String, Object[]) Join(String, Object[])

串連物件陣列的項目,並在每個項目之間使用指定的分隔符號。Concatenates the elements of an object array, using the specified separator between each element.

public:
 static System::String ^ Join(System::String ^ separator, ... cli::array <System::Object ^> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Join (string separator, params object[] values);
static member Join : string * obj[] -> string
Public Shared Function Join (separator As String, ParamArray values As Object()) As String

參數

separator
String String String String

要當做分隔符號的字串。The string to use as a separator. 只有在 values 的元素有一個以上時,separator 才會包含在傳回的字串中。separator is included in the returned string only if values has more than one element.

values
Object[]

含有要串連之項目的陣列。An array that contains the elements to concatenate.

傳回

字串,由 values 的項目組成,且每個項目之間都會以 separator 字串分隔。A string that consists of the elements of values delimited by the separator string. 如果 values 為空陣列,則方法會傳回 EmptyIf values is an empty array, the method returns Empty.

例外狀況

範例

下列範例會使用 Eratosthenes 演算法的 Eratosthenes 來計算小於或等於100的質數。The following example uses the Sieve of Eratosthenes algorithm to calculate the prime numbers that are less than or equal to 100. 它會將結果指派給整數陣列, 然後將它傳遞給Join(String, Object[])方法。It assigns the result to a integer array, which it then passes to the Join(String, Object[]) method.

using System;
using System.Collections.Generic;

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

   private static 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.ToArray();
   }   
}
// 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
Module Example
   Public Sub Main()
      Dim maxPrime As Integer = 100
      Dim primes() As Integer = GetPrimes(maxPrime)
      Console.WriteLine("Primes less than {0}:", maxPrime)
      Console.WriteLine("   {0}", String.Join(" ", primes))
   End Sub
   
   Private Function GetPrimes(maxPrime As Integer) As Integer()
      Dim values As Array = Array.CreateInstance(GetType(Integer), _
                              New Integer() { maxPrime - 1}, New Integer(){ 2 }) 
        ' Use Sieve of Eratosthenes to determine prime numbers.
      For ctr As Integer = values.GetLowerBound(0) To _
                           CInt(Math.Ceiling(Math.Sqrt(values.GetUpperBound(0))))
         If CInt(values.GetValue(ctr)) = 1 Then Continue For
         
         For multiplier As Integer = ctr To maxPrime \ 2
            If ctr * multiplier <= maxPrime Then values.SetValue(1, ctr * multiplier)
         Next   
      Next      
      
      Dim primes As New System.Collections.Generic.List(Of Integer)
      For ctr As Integer = values.GetLowerBound(0) To values.GetUpperBound(0)
         If CInt(values.GetValue(ctr)) = 0 Then primes.Add(ctr)
      Next            
      Return primes.ToArray()
   End Function   
End Module
' 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

備註

如果separatornull , null或如果String.Empty第一個專案以外的任何元素為,則會改用空字串()。valuesIf separator is null or if any element of values other than the first element is null, an empty string (String.Empty) is used instead. 如果的第一個元素values為, null請參閱呼叫者的注意事項一節。See the Notes for Callers section if the first element of values is null.

Join(String, Object[])是一個便利的方法, 可讓您串連物件陣列中的每個專案, 而不需要明確地將其元素轉換成字串。Join(String, Object[]) is a convenience method that lets you concatenate each element in an object array without explicitly converting its elements to strings. 陣列中每個物件的字串表示, 都是藉由呼叫該物件ToString的方法來衍生。The string representation of each object in the array is derived by calling that object's ToString method.

給呼叫者的注意事項

如果的第一個元素valuesnull, 則Join(String, Object[])方法不會串連中values的專案, 而Empty會傳回。If the first element of values is null, the Join(String, Object[]) method does not concatenate the elements in values but instead returns Empty. 此問題有一些因應措施可用。A number of workarounds for this issue are available. 最簡單的方法是將的值Empty指派給陣列的第一個元素, 如下列範例所示。The easiest is to assign a value of Empty to the first element of the array, as the following example shows.

[!code-csharpSystem.String.Join#6] [!code-vbSystem.String.Join#6][!code-csharpSystem.String.Join#6] [!code-vbSystem.String.Join#6]

另請參閱

Join(String, String[]) Join(String, String[]) Join(String, String[]) Join(String, String[])

串連字串陣列的所有項目,並在每個項目之間使用指定的分隔符號。Concatenates all the elements of a string array, using the specified separator between each element.

public:
 static System::String ^ Join(System::String ^ separator, ... cli::array <System::String ^> ^ value);
public static string Join (string separator, params string[] value);
static member Join : string * string[] -> string
Public Shared Function Join (separator As String, ParamArray value As String()) As String

參數

separator
String String String String

要當做分隔符號的字串。The string to use as a separator. 只有在 value 的元素有一個以上時,separator 才會包含在傳回的字串中。separator is included in the returned string only if value has more than one element.

value
String[]

含有要串連之項目的陣列。An array that contains the elements to concatenate.

傳回

字串,由 value 中的項目組成,且每個項目之間都會以 separator 字串分隔。A string that consists of the elements in value delimited by the separator string. 如果 value 為空陣列,則方法會傳回 EmptyIf value is an empty array, the method returns Empty.

例外狀況

範例

下列範例示範Join方法。The following example demonstrates the Join method.

using namespace System;
String^ MakeLine( int initVal, int multVal, String^ sep )
{
   array<String^>^sArr = gcnew array<String^>(10);
   for ( int i = initVal; i < initVal + 10; i++ )
      sArr[ i - initVal ] = String::Format( "{0, -3}", i * multVal );
   return String::Join( sep, sArr );
}

int main()
{
   Console::WriteLine( MakeLine( 0, 5, ", " ) );
   Console::WriteLine( MakeLine( 1, 6, "  " ) );
   Console::WriteLine( MakeLine( 9, 9, ": " ) );
   Console::WriteLine( MakeLine( 4, 7, "< " ) );
}
// The example displays the following output:
//       0  , 5  , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45
//       6    12   18   24   30   36   42   48   54   60
//       81 : 90 : 99 : 108: 117: 126: 135: 144: 153: 162
//       28 < 35 < 42 < 49 < 56 < 63 < 70 < 77 < 84 < 91
using System;

public class JoinTest {
    public static void Main() {

        Console.WriteLine(MakeLine(0, 5, ", "));
        Console.WriteLine(MakeLine(1, 6, "  "));
        Console.WriteLine(MakeLine(9, 9, ": "));
        Console.WriteLine(MakeLine(4, 7, "< "));
    }

    private static string MakeLine(int initVal, int multVal, string sep) {

        string [] sArr = new string [10];

        for (int i = initVal; i < initVal + 10; i++)
            sArr[i - initVal] = String.Format("{0,-3}", i * multVal);

        return String.Join(sep, sArr);
    }
}
// The example displays the following output:
//       0  , 5  , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45
//       6    12   18   24   30   36   42   48   54   60
//       81 : 90 : 99 : 108: 117: 126: 135: 144: 153: 162
//       28 < 35 < 42 < 49 < 56 < 63 < 70 < 77 < 84 < 91  
Imports System

Public Class JoinTest
    
    Public Shared Sub Main()
        
        Console.WriteLine(MakeLine(0, 5, ", "))
        Console.WriteLine(MakeLine(1, 6, "  "))
        Console.WriteLine(MakeLine(9, 9, ": "))
        Console.WriteLine(MakeLine(4, 7, "< "))
    End Sub 'Main
    
    
    Private Shared Function MakeLine(initVal As Integer, multVal As Integer, sep As String) As String
        Dim sArr(10) As String
        Dim i As Integer
        
        
        For i = initVal To (initVal + 10) - 1
            sArr((i - initVal)) = [String].Format("{0,-3}", i * multVal)
        
        Next i
        Return [String].Join(sep, sArr)
    End Function 'MakeLine
End Class 'JoinTest
' The example displays the following output:
'       0  , 5  , 10 , 15 , 20 , 25 , 30 , 35 , 40 , 45
'       6    12   18   24   30   36   42   48   54   60
'       81 : 90 : 99 : 108: 117: 126: 135: 144: 153: 162
'       28 < 35 < 42 < 49 < 56 < 63 < 70 < 77 < 84 < 91

備註

例如, 如果separator是 ",", 且的value元素為 "apple"、"橙色"、"grape" 和 "梨", Join(separator, value)則會傳回 "apple, 橙色, grape, 梨"。For example, if separator is ", " and the elements of value are "apple", "orange", "grape", and "pear", Join(separator, value) returns "apple, orange, grape, pear".

如果separator String.Emptynull, 則會改用空字串 ()。If separator is null, an empty string (String.Empty) is used instead. 如果中的value任何元素null為, 則會改用空字串。If any element in value is null, an empty string is used instead.

另請參閱

Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32) Join(Char, String[], Int32, Int32)

public:
 static System::String ^ Join(char separator, cli::array <System::String ^> ^ value, int startIndex, int count);
public static string Join (char separator, string[] value, int startIndex, int count);
static member Join : char * string[] * int * int -> string
Public Shared Function Join (separator As Char, value As String(), startIndex As Integer, count As Integer) As String

參數

separator
Char Char Char Char
value
String[]
startIndex
Int32 Int32 Int32 Int32

傳回

Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32) Join(String, String[], Int32, Int32)

串連字串陣列的指定項目,並在每個項目之間使用指定的分隔符號。Concatenates the specified elements of a string array, using the specified separator between each element.

public:
 static System::String ^ Join(System::String ^ separator, cli::array <System::String ^> ^ value, int startIndex, int count);
public static string Join (string separator, string[] value, int startIndex, int count);
static member Join : string * string[] * int * int -> string
Public Shared Function Join (separator As String, value As String(), startIndex As Integer, count As Integer) As String

參數

separator
String String String String

要當做分隔符號的字串。The string to use as a separator. 只有在 value 的元素有一個以上時,separator 才會包含在傳回的字串中。separator is included in the returned string only if value has more than one element.

value
String[]

含有要串連之項目的陣列。An array that contains the elements to concatenate.

startIndex
Int32 Int32 Int32 Int32

value 中要使用的第一個項目。The first element in value to use.

count
Int32 Int32 Int32 Int32

要使用的 value 項目數目。The number of elements of value to use.

傳回

value 中之字串組成的字串,每個字串之間都以 separator 字串隔開。A string that consists of the strings in value delimited by the separator string.

-或--or- 如果 Empty 為零、count 沒有任何項目,或 valueseparator 的所有項目都是 value,則為 EmptyEmpty if count is zero, value has no elements, or separator and all the elements of value are Empty.

例外狀況

startIndexcount 小於 0。startIndex or count is less than 0.

-或--or- startIndex 加上 count 大於 value中的項目數。startIndex plus count is greater than the number of elements in value.

範例

下列範例會串連來自水果名稱陣列的兩個元素。The following example concatenates two elements from an array of names of fruit.

// Sample for String::Join(String, String[], int int)
using namespace System;
int main()
{
   array<String^>^val = {"apple","orange","grape","pear"};
   String^ sep = ", ";
   String^ result;
   Console::WriteLine( "sep = '{0}'", sep );
   Console::WriteLine( "val[] = {{'{0}' '{1}' '{2}' '{3}'}}", val[ 0 ], val[ 1 ], val[ 2 ], val[ 3 ] );
   result = String::Join( sep, val, 1, 2 );
   Console::WriteLine( "String::Join(sep, val, 1, 2) = '{0}'", result );
}

/*
This example produces the following results:
sep = ', '
val[] = {'apple' 'orange' 'grape' 'pear'}
String::Join(sep, val, 1, 2) = 'orange, grape'
*/
String[] val = {"apple", "orange", "grape", "pear"};
String sep   = ", ";
String result;

Console.WriteLine("sep = '{0}'", sep);
Console.WriteLine("val[] = {{'{0}' '{1}' '{2}' '{3}'}}", val[0], val[1], val[2], val[3]);
result = String.Join(sep, val, 1, 2);
Console.WriteLine("String.Join(sep, val, 1, 2) = '{0}'", result);

// This example produces the following results:
// sep = ', '
// val[] = {'apple' 'orange' 'grape' 'pear'}
// String.Join(sep, val, 1, 2) = 'orange, grape'
Class Sample
   Public Shared Sub Main()
      Dim val As [String]() =  {"apple", "orange", "grape", "pear"}
      Dim sep As [String] = ", "
      Dim result As [String]
      
      Console.WriteLine("sep = '{0}'", sep)
      Console.WriteLine("val() = {{'{0}' '{1}' '{2}' '{3}'}}", val(0), val(1), val(2), val(3))
      result = [String].Join(sep, val, 1, 2)
      Console.WriteLine("String.Join(sep, val, 1, 2) = '{0}'", result)
   End Sub
End Class 
'This example displays the following output:
'       sep = ', '
'       val() = {'apple' 'orange' 'grape' 'pear'}
'       String.Join(sep, val, 1, 2) = 'orange, grape'

備註

例如, 如果separator是 ",", 且的value元素為 "apple"、"橙色"、"grape" 和 "梨", Join(separator, value, 1, 2)則會傳回 "橙色, grape"。For example, if separator is ", " and the elements of value are "apple", "orange", "grape", and "pear", Join(separator, value, 1, 2) returns "orange, grape".

如果separator String.Emptynull, 則會改用空字串 ()。If separator is null, an empty string (String.Empty) is used instead. 如果中的value任何元素null為, 則會改用空字串。If any element in value is null, an empty string is used instead.

另請參閱

Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>) Join<T>(Char, IEnumerable<T>)

public:
generic <typename T>
 static System::String ^ Join(char separator, System::Collections::Generic::IEnumerable<T> ^ values);
public static string Join<T> (char separator, System.Collections.Generic.IEnumerable<T> values);
static member Join : char * seq<'T> -> string
Public Shared Function Join(Of T) (separator As Char, values As IEnumerable(Of T)) As String

類型參數

T

參數

separator
Char Char Char Char

傳回

Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>) Join<T>(String, IEnumerable<T>)

串連集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a collection, using the specified separator between each member.

public:
generic <typename T>
 static System::String ^ Join(System::String ^ separator, System::Collections::Generic::IEnumerable<T> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Join<T> (string separator, System.Collections.Generic.IEnumerable<T> values);
static member Join : string * seq<'T> -> string
Public Shared Function Join(Of T) (separator As String, values As IEnumerable(Of T)) As String

類型參數

T

values 之成員的類型。The type of the members of values.

參數

separator
String String String String

要當作分隔符號的字串。separatorThe string to use as a separator.separator 只有在 values 有一個以上的項目時,才會包含在傳回的字串中。is included in the returned string only if values has more than one element.

values
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

包含要串連之物件的集合。A collection that contains the objects to concatenate.

傳回

字串,由 values 中的成員組成,且每個成員之間都會以 separator 字串分隔。A string that consists of the members of values delimited by the separator string. 如果 values 沒有成員,方法會傳回 EmptyIf values has no members, the method returns Empty.

例外狀況

範例

下列範例會使用 Eratosthenes 演算法的 Eratosthenes 來計算小於或等於100的質數。The following example uses the Sieve of Eratosthenes algorithm to calculate the prime numbers that are less than or equal to 100. 它會將結果指派給List<T>整數類型的物件, 然後將它傳遞Join<T>(String, IEnumerable<T>)給方法。It assigns the result to a List<T> object of type integer, which it then passes to the Join<T>(String, IEnumerable<T>) method.

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
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim maxPrime As Integer = 100
      Dim primes As List(Of Integer) = GetPrimes(maxPrime)
      Console.WriteLine("Primes less than {0}:", maxPrime)
      Console.WriteLine("   {0}", String.Join(" ", primes))
   End Sub
   
   Private Function GetPrimes(maxPrime As Integer) As List(Of Integer)
      Dim values As Array = Array.CreateInstance(GetType(Integer), _
                              New Integer() { maxPrime - 1}, New Integer(){ 2 }) 
        ' Use Sieve of Eratosthenes to determine prime numbers.
      For ctr As Integer = values.GetLowerBound(0) To _
                           CInt(Math.Ceiling(Math.Sqrt(values.GetUpperBound(0))))
         If CInt(values.GetValue(ctr)) = 1 Then Continue For
         
         For multiplier As Integer = ctr To maxPrime \ 2
            If ctr * multiplier <= maxPrime Then values.SetValue(1, ctr * multiplier)
         Next   
      Next      
      
      Dim primes As New System.Collections.Generic.List(Of Integer)
      For ctr As Integer = values.GetLowerBound(0) To values.GetUpperBound(0)
         If CInt(values.GetValue(ctr)) = 0 Then primes.Add(ctr)
      Next            
      Return primes
   End Function   
End Module
' 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

備註

如果separator String.Emptynull, 則會改用空字串 ()。If separator is null, an empty string (String.Empty) is used instead. 如果的values任何成員為null, 則會改用空字串。If any member of values is null, an empty string is used instead.

Join<T>(String, IEnumerable<T>)是一個便利的方法, 可讓您串連IEnumerable<T>集合的每個成員, 而不需要先將它們轉換成字串。Join<T>(String, IEnumerable<T>) is a convenience method that lets you concatenate each member of an IEnumerable<T> collection without first converting them to strings. IEnumerable<T>集合中每個物件的字串表示, 都是藉由呼叫該物件ToString的方法來衍生。The string representation of each object in the IEnumerable<T> collection is derived by calling that object's ToString method.

這個方法特別適用于語言整合式查詢 (LINQ) 查詢運算式。This method is particular useful with Language-Integrated Query (LINQ) query expressions. 例如, 下列程式碼會定義一個非常簡單Animal的類別, 其中包含寵物的名稱和它所屬的順序。For example, the following code defines a very simple Animal class that contains the name of an animal and the order to which it belongs. 然後, 它會List<T>定義包含多個Animal物件的物件。It then defines a List<T> object that contains a number of Animal objects. 呼叫擴充方法, 以將其Order屬性Animal等於 "齧齒動物" 的物件解壓縮。 Enumerable.WhereThe Enumerable.Where extension method is called to extract the Animal objects whose Order property equals "Rodent". 結果會傳遞至Join<T>(String, IEnumerable<T>)方法。The result is passed to the Join<T>(String, IEnumerable<T>) method.

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
Imports System.Collections.Generic

Public Class Animal
   Public Kind As String
   Public Order As String
   
   Public Sub New(kind As String, order As String)
      Me.Kind = kind
      Me.Order = order
   End Sub
   
   Public Overrides Function ToString() As String
      Return Me.Kind
   End Function
End Class

Module Example
   Public Sub Main()
      Dim animals As New List(Of Animal)
      animals.Add(New Animal("Squirrel", "Rodent"))
      animals.Add(New Animal("Gray Wolf", "Carnivora"))
      animals.Add(New Animal("Capybara", "Rodent")) 
      Dim output As String = String.Join(" ", animals.Where(Function(animal) _
                                           animal.Order = "Rodent"))
      Console.WriteLine(output)                                           
   End Sub
End Module
' The example displays the following output:
'      Squirrel Capybara
另請參閱

適用於