String.Join 方法
定義
串連指定之陣列的項目或集合的成員,並在每個項目或成員之間使用指定的分隔符號。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[]) |
在每個成員間使用所指定分隔符號來串連物件陣列的字串表示。Concatenates the string representations of an array of objects, using the specified separator between each member. |
Join(Char, String[]) |
在每個成員間使用所指定分隔符號來串連字串陣列。Concatenates an array of strings, using the specified separator between each member. |
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[]) |
串連物件陣列的項目,並在每個項目之間使用指定的分隔符號。Concatenates the elements of an object array, using the specified separator between each element. |
Join(String, String[]) |
串連字串陣列的所有項目,並在每個項目之間使用指定的分隔符號。Concatenates all the elements of a string array, using the specified separator between each element. |
Join(Char, 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>) |
串連集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a collection, using the specified separator between each member. |
Join<T>(String, IEnumerable<T>) |
串連集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a collection, using the specified separator between each member. |
Join(Char, Object[])
在每個成員間使用所指定分隔符號來串連物件陣列的字串表示。Concatenates the string representations of an array of objects, using the specified separator between each member.
public:
static System::String ^ Join(char separator, ... cli::array <System::Object ^> ^ values);
public static string Join (char separator, params 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
作為分隔符號使用的字元。The character to use as a separator. 只有在 value
的元素有一個以上時,separator
才會包含在傳回的字串中。separator
is included in the returned string only if value
has more than one element.
- values
- Object[]
物件陣列,其字串表示會串連在一起。An array of objects whose string representations will be concatenated.
傳回
字串,由使用 separator
字元分隔的 values
元素組成。A string that consists of the elements of values
delimited by the separator
character.
-或--or-
Empty 如果 values
有零個元素。Empty if values
has zero elements.
例外狀況
value
為 null
。value
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
適用於
Join(Char, String[])
在每個成員間使用所指定分隔符號來串連字串陣列。Concatenates an array of strings, using the specified separator between each member.
public:
static System::String ^ Join(char separator, ... cli::array <System::String ^> ^ value);
public static string Join (char separator, params 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
作為分隔符號使用的字元。The character 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 of strings to concatenate.
傳回
字串,由使用 separator
字元分隔的 value
元素組成。A string that consists of the elements of value
delimited by the separator
character.
-或--or-
Empty 如果 value
有零個元素。Empty if value
has zero elements.
例外狀況
value
為 null
。value
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
適用於
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);
public static string Join (string separator, System.Collections.Generic.IEnumerable<string> values);
public static string Join (string? separator, System.Collections.Generic.IEnumerable<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
[<System.Runtime.InteropServices.ComVisible(false)>]
static member Join : string * seq<string> -> string
Public Shared Function Join (separator As String, values As IEnumerable(Of String)) As String
參數
- separator
- String
要當作分隔符號的字串。separator
The 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 elements of values
delimited by the separator
string.
-或--or-
Empty 如果 values
有零個元素。Empty if values
has zero elements.
- 屬性
例外狀況
values
為 null
。values
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
範例
下列範例會使用 Eratosthenes 演算法的 Sieve 來計算小於或等於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
為 null
,則會改為使用 () 的空字串 String.Empty 。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. 這特別適用于 Language-Integrated 查詢 (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)
方法所傳回的集合 Enumerable.Where 會傳遞至方法, Join(String, IEnumerable<String>) 以將結果顯示為單一字串。The 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[])
串連物件陣列的項目,並在每個項目之間使用指定的分隔符號。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);
public static string Join (string separator, params object[] values);
public static string Join (string? separator, params object?[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Join (string separator, params object[] values);
static member Join : string * obj[] -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
static member Join : string * obj[] -> string
Public Shared Function Join (separator As String, ParamArray values As Object()) As String
參數
- separator
- 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.
-或--or-
Empty 如果 values
有零個元素。Empty if values
has zero elements.
-或--or-
僅 .NET Framework: Empty 如果的第一個專案 values
是,則為 null
。.NET Framework only: Empty if the first element of values
is null
.
- 屬性
例外狀況
values
為 null
。values
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
範例
下列範例會使用 Eratosthenes 演算法的 Sieve 來計算小於或等於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
備註
如果 separator
為 null
,或如果第一個元素以外的任何專案 values
為 null
,則會改用空字串 (String.Empty) 。If 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.
給呼叫者的注意事項
僅 .NET Framework:如果的第一個專案 values
是 null
,則 Join(String, Object[]) 方法不會串連中的元素,而會傳回 values
Empty 。.NET Framework only: 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-csharp-interactivesystem.string. Join # 6][! code-vbsystem.string. Join # 6][!code-csharp-interactiveSystem.String.Join#6] [!code-vbSystem.String.Join#6]
另請參閱
適用於
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 System::String ^ Join(System::String ^ separator, cli::array <System::String ^> ^ value);
public static string Join (string separator, params string[] value);
public static string Join (string? separator, params string?[] value);
public static string Join (string separator, string[] value);
static member Join : string * string[] -> string
Public Shared Function Join (separator As String, ParamArray value As String()) As String
Public Shared Function Join (separator As String, value As String()) As String
參數
- separator
- 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.
-或--or-
Empty 如果 values
有零個元素。Empty if values
has zero elements.
例外狀況
value
為 null
。value
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
範例
下列範例會示範 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
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
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
' 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
為 null
,則會改為使用 () 的空字串 String.Empty 。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)
在每個成員間使用所指定分隔符號來串連字串陣列,從位在 startIndex
位置 value
中的元素開始,最多串連 count
個元素。Concatenates an array of strings, using the specified separator between each member, starting with the element in value
located at the startIndex
position, and concatenating up to count
elements.
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);
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
在每個成員間使用所指定分隔符號來串連字串陣列,從位於指定索引的元素開始,並包含指定的元素數量。Concatenates an array of strings, using the specified separator between each member, starting with the element located at the specified index and including a specified number of elements.
- value
- String[]
要串連的字串陣列。An array of strings to concatenate.
- startIndex
- Int32
value
中要串連的第一個項目。The first item in value
to concatenate.
- count
- Int32
value
中要串連的元素數目,從 startIndex
位置中的元素開始。The number of elements from value
to concatenate, starting with the element in the startIndex
position.
傳回
由 count
value
開頭為字元分隔之元素的字串 startIndex
separator
。A string that consists of count
elements of value
starting at startIndex
delimited by the separator
character.
-或--or-
Empty 如果 count
為零,則為。Empty if count
is zero.
例外狀況
value
為 null
。value
is null
.
startIndex
或 count
為負值。startIndex
or count
are negative.
-或--or-
startIndex
大於 value
- count
的長度。startIndex
is greater than the length of value
- count
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
適用於
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);
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
要當做分隔符號的字串。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
value
中要使用的第一個項目。The first element in value
to use.
- count
- Int32
要使用的 value
項目數目。The number of elements of value
to use.
傳回
由 count
value
開頭為字元分隔之元素的字串 startIndex
separator
。A string that consists of count
elements of value
starting at startIndex
delimited by the separator
character.
-或--or-
Empty 如果 count
為零,則為。Empty if count
is zero.
例外狀況
value
為 null
。value
is null
.
startIndex
或 count
小於 0。startIndex
or count
is less than 0.
-或--or-
startIndex
加上 count
大於 value
中的項目數。startIndex
plus count
is greater than the number of elements in value
.
記憶體不足。Out of memory.
範例
下列範例會串連水果名稱陣列中的兩個元素。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
為 null
,則會改為使用 () 的空字串 String.Empty 。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>)
串連集合的成員,並在每個成員之間使用指定的分隔符號。Concatenates the members of a collection, using the specified separator between each member.
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
values
之成員的類型。The type of the members of values
.
參數
- separator
- Char
作為分隔符號使用的字元。The character to use as a separator. 只有在 values
的元素有一個以上時,separator
才會包含在傳回的字串中。separator
is included in the returned string only if values
has more than one element.
- values
- IEnumerable<T>
包含要串連之物件的集合。A collection that contains the objects to concatenate.
傳回
字串,由使用 separator
字元分隔的 values
成員組成。A string that consists of the members of values
delimited by the separator
character.
-或--or-
Empty 如果沒有 values
元素,則為。Empty if values
has no elements.
例外狀況
values
為 null
。values
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
適用於
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);
public static string Join<T> (string separator, System.Collections.Generic.IEnumerable<T> values);
public static string Join<T> (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
[<System.Runtime.InteropServices.ComVisible(false)>]
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
要當做分隔符號的字串。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
- IEnumerable<T>
包含要串連之物件的集合。A collection that contains the objects to concatenate.
傳回
字串,由 values
的項目組成,且每個項目之間都會以 separator
字串分隔。A string that consists of the elements of values
delimited by the separator
string.
-或--or-
Empty 如果沒有 values
元素,則為。Empty if values
has no elements.
- 屬性
例外狀況
values
為 null
。values
is null
.
產生的字串長度會溢出允許長度上限 (MaxValue)。The length of the resulting string overflows the maximum allowed length (MaxValue).
範例
下列範例會使用 Eratosthenes 演算法的 Sieve 來計算小於或等於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> integer 類型的物件,然後傳遞給 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
為 null
,則會改為使用 () 的空字串 String.Empty 。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.
這種方法特別適用于 Language-Integrated 查詢 (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. Enumerable.Where會呼叫擴充方法,將 Animal
其 Order
屬性等於 "齧齒動物" 的物件解壓縮。The 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