String.Concat Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
Concat(String, String, String, String) |
Concatenates four specified instances of String. |
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Concatenates the string representations of four specified read-only character spans. |
Concat(Object, Object, Object, Object) |
Concatenates the string representations of four specified objects and any objects specified in an optional variable length parameter list. |
Concat(String, String, String) |
Concatenates three specified instances of String. |
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Concatenates the string representations of three specified read-only character spans. |
Concat(Object, Object, Object) |
Concatenates the string representations of three specified objects. |
Concat(String, String) |
Concatenates two specified instances of String. |
Concat(IEnumerable<String>) |
Concatenates the members of a constructed IEnumerable<T> collection of type String. |
Concat(Object, Object) |
Concatenates the string representations of two specified objects. |
Concat(String[]) |
Concatenates the elements of a specified String array. |
Concat(ReadOnlySpan<String>) |
Concatenates the elements of a specified span of String. |
Concat(ReadOnlySpan<Object>) |
Concatenates the string representations of the elements in a specified span of objects. |
Concat(Object[]) |
Concatenates the string representations of the elements in a specified Object array. |
Concat(Object) |
Creates the string representation of a specified object. |
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Concatenates the string representations of two specified read-only character spans. |
Concat<T>(IEnumerable<T>) |
Concatenates the members of an IEnumerable<T> implementation. |
Remarks
Note
You can also use your language's string concatenation operator, such as +
in C# and F#, or &
and +
in Visual Basic, to concatenate strings. Both compilers translate the concatenation operator into a call to one of the overloads of String.Concat
.
Concat(String, String, String, String)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates four specified instances of String.
public:
static System::String ^ Concat(System::String ^ str0, System::String ^ str1, System::String ^ str2, System::String ^ str3);
public static string Concat (string str0, string str1, string str2, string str3);
public static string Concat (string? str0, string? str1, string? str2, string? str3);
static member Concat : string * string * string * string -> string
Public Shared Function Concat (str0 As String, str1 As String, str2 As String, str3 As String) As String
Parameters
- str0
- String
The first string to concatenate.
- str1
- String
The second string to concatenate.
- str2
- String
The third string to concatenate.
- str3
- String
The fourth string to concatenate.
Returns
The concatenation of str0
, str1
, str2
, and str3
.
Examples
The following example defines an array of four-letter words and stores their individual letters to a string array in order to scramble them. It then calls the Concat(String, String, String, String) method to reassemble the scrambled words.
using System;
using System.Collections;
public class Example
{
public static void Main()
{
const int WORD_SIZE = 4;
// Define some 4-letter words to be scrambled.
string[] words = { "home", "food", "game", "rest" };
// Define two arrays equal to the number of letters in each word.
double[] keys = new double[WORD_SIZE];
string[] letters = new string[WORD_SIZE];
// Initialize the random number generator.
Random rnd = new Random();
// Scramble each word.
foreach (string word in words)
{
for (int ctr = 0; ctr < word.Length; ctr++)
{
// Populate the array of keys with random numbers.
keys[ctr] = rnd.NextDouble();
// Assign a letter to the array of letters.
letters[ctr] = word[ctr].ToString();
}
// Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default);
// Display the scrambled word.
string scrambledWord = String.Concat(letters[0], letters[1],
letters[2], letters[3]);
Console.WriteLine("{0} --> {1}", word, scrambledWord);
}
}
}
// The example displays output like the following:
// home --> mheo
// food --> oodf
// game --> aemg
// rest --> trse
open System
open System.Collections
let WORD_SIZE = 4
// Define some 4-letter words to be scrambled.
let words = [| "home"; "food"; "game"; "rest" |]
// Define two arrays equal to the number of letters in each word.
let keys = Array.zeroCreate<float> WORD_SIZE
let letters = Array.zeroCreate<string> WORD_SIZE
// Initialize the random number generator.
let rnd = Random()
// Scramble each word.
for word in words do
for i = 0 to word.Length - 1 do
// Populate the array of keys with random numbers.
keys[i] <- rnd.NextDouble()
// Assign a letter to the array of letters.
letters[i] <- string word[i]
// Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default)
// Display the scrambled word.
let scrambledWord = String.Concat(letters[0], letters[1], letters[2], letters[3])
printfn $"{word} --> {scrambledWord}"
// The example displays output like the following:
// home --> mheo
// food --> oodf
// game --> aemg
// rest --> trse
Imports System.Collections
Module Example
Public Sub Main()
Const WORD_SIZE As Integer = 4
' Define some 4-letter words to be scrambled.
Dim words() As String = { "home", "food", "game", "rest" }
' Define two arrays equal to the number of letters in each word.
Dim keys(WORD_SIZE) As Double
Dim letters(WORD_SIZE) As String
' Initialize the random number generator.
Dim rnd As New Random()
' Scramble each word.
For Each word As String In words
For ctr As Integer = 0 To word.Length - 1
' Populate the array of keys with random numbers.
keys(ctr) = rnd.NextDouble()
' Assign a letter to the array of letters.
letters(ctr) = word.Chars(ctr)
Next
' Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default)
' Display the scrambled word.
Dim scrambledWord As String = String.Concat(letters(0), letters(1), _
letters(2), letters(3))
Console.WriteLine("{0} --> {1}", word, scrambledWord)
Next
End Sub
End Module
' The example displays output like the following:
' home --> mheo
' food --> oodf
' game --> aemg
' rest --> trse
Remarks
The method concatenates str0
, str1
, str2
, and str3
; it does not add any delimiters.
See also
Applies to
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of four specified read-only character spans.
public:
static System::String ^ Concat(ReadOnlySpan<char> str0, ReadOnlySpan<char> str1, ReadOnlySpan<char> str2, ReadOnlySpan<char> str3);
public static string Concat (ReadOnlySpan<char> str0, ReadOnlySpan<char> str1, ReadOnlySpan<char> str2, ReadOnlySpan<char> str3);
static member Concat : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Concat (str0 As ReadOnlySpan(Of Char), str1 As ReadOnlySpan(Of Char), str2 As ReadOnlySpan(Of Char), str3 As ReadOnlySpan(Of Char)) As String
Parameters
- str0
- ReadOnlySpan<Char>
The first read-only character span to concatenate.
- str1
- ReadOnlySpan<Char>
The second read-only character span to concatenate.
- str2
- ReadOnlySpan<Char>
The third read-only character span to concatenate.
- str3
- ReadOnlySpan<Char>
The fourth read-only character span to concatenate.
Returns
The concatenated string representations of the values of str0
, str1
, str2
and str3
.
Applies to
Concat(Object, Object, Object, Object)
Important
This API is not CLS-compliant.
Concatenates the string representations of four specified objects and any objects specified in an optional variable length parameter list.
public:
static System::String ^ Concat(System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2, System::Object ^ arg3);
[System.CLSCompliant(false)]
public static string Concat (object arg0, object arg1, object arg2, object arg3);
[<System.CLSCompliant(false)>]
static member Concat : obj * obj * obj * obj -> string
Public Shared Function Concat (arg0 As Object, arg1 As Object, arg2 As Object, arg3 As Object) As String
Parameters
- arg0
- Object
The first object to concatenate.
- arg1
- Object
The second object to concatenate.
- arg2
- Object
The third object to concatenate.
- arg3
- Object
The fourth object to concatenate.
Returns
The concatenated string representation of each value in the parameter list.
- Attributes
Examples
The following example illustrates the use of the Concat(Object, Object, Object, Object) method to concatenate a list of variable parameters. In this case, the method is called with nine parameters.
using System;
using System.Collections;
public class Example
{
public static void Main()
{
const int WORD_SIZE = 4;
// Define some 4-letter words to be scrambled.
string[] words = { "home", "food", "game", "rest" };
// Define two arrays equal to the number of letters in each word.
double[] keys = new double[WORD_SIZE];
string[] letters = new string[WORD_SIZE];
// Initialize the random number generator.
Random rnd = new Random();
// Scramble each word.
foreach (string word in words)
{
for (int ctr = 0; ctr < word.Length; ctr++)
{
// Populate the array of keys with random numbers.
keys[ctr] = rnd.NextDouble();
// Assign a letter to the array of letters.
letters[ctr] = word[ctr].ToString();
}
// Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default);
// Display the scrambled word.
string scrambledWord = String.Concat(letters[0], letters[1],
letters[2], letters[3]);
Console.WriteLine("{0} --> {1}", word, scrambledWord);
}
}
}
// The example displays output like the following:
// home --> mheo
// food --> oodf
// game --> aemg
// rest --> trse
open System
open System.Collections
let WORD_SIZE = 4
// Define some 4-letter words to be scrambled.
let words = [| "home"; "food"; "game"; "rest" |]
// Define two arrays equal to the number of letters in each word.
let keys = Array.zeroCreate<float> WORD_SIZE
let letters = Array.zeroCreate<string> WORD_SIZE
// Initialize the random number generator.
let rnd = Random()
// Scramble each word.
for word in words do
for i = 0 to word.Length - 1 do
// Populate the array of keys with random numbers.
keys[i] <- rnd.NextDouble()
// Assign a letter to the array of letters.
letters[i] <- string word[i]
// Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default)
// Display the scrambled word.
let scrambledWord = String.Concat(letters[0], letters[1], letters[2], letters[3])
printfn $"{word} --> {scrambledWord}"
// The example displays output like the following:
// home --> mheo
// food --> oodf
// game --> aemg
// rest --> trse
Imports System.Collections
Module Example
Public Sub Main()
Const WORD_SIZE As Integer = 4
' Define some 4-letter words to be scrambled.
Dim words() As String = { "home", "food", "game", "rest" }
' Define two arrays equal to the number of letters in each word.
Dim keys(WORD_SIZE) As Double
Dim letters(WORD_SIZE) As String
' Initialize the random number generator.
Dim rnd As New Random()
' Scramble each word.
For Each word As String In words
For ctr As Integer = 0 To word.Length - 1
' Populate the array of keys with random numbers.
keys(ctr) = rnd.NextDouble()
' Assign a letter to the array of letters.
letters(ctr) = word.Chars(ctr)
Next
' Sort the array.
Array.Sort(keys, letters, 0, WORD_SIZE, Comparer.Default)
' Display the scrambled word.
Dim scrambledWord As String = String.Concat(letters(0), letters(1), _
letters(2), letters(3))
Console.WriteLine("{0} --> {1}", word, scrambledWord)
Next
End Sub
End Module
' The example displays output like the following:
' home --> mheo
' food --> oodf
' game --> aemg
' rest --> trse
Remarks
Note
This API is not CLS-compliant. The CLS-compliant alternative is String.Concat(Object[]). The C# and Visual Basic compilers automatically resolve a call to this method as a call to String.Concat(Object[]).
The method concatenates each object in the parameter list by calling its parameterless ToString
method; it does not add any delimiters.
String.Empty is used in place of any null argument.
Note
The last parameter of the Concat method is an optional comma-delimited list of one or more additional objects to concatenate.
Notes to Callers
This method is marked with the vararg
keyword, which means that it supports a variable number of parameters. The method can be called from Visual C++, but it cannot be called from C# or Visual Basic code. The C# and Visual Basic compilers resolve calls to Concat(Object, Object, Object, Object) as calls to Concat(Object[]).
Applies to
Concat(String, String, String)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates three specified instances of String.
public:
static System::String ^ Concat(System::String ^ str0, System::String ^ str1, System::String ^ str2);
public static string Concat (string str0, string str1, string str2);
public static string Concat (string? str0, string? str1, string? str2);
static member Concat : string * string * string -> string
Public Shared Function Concat (str0 As String, str1 As String, str2 As String) As String
Parameters
- str0
- String
The first string to concatenate.
- str1
- String
The second string to concatenate.
- str2
- String
The third string to concatenate.
Returns
The concatenation of str0
, str1
, and str2
.
Examples
The following example uses the Concat method to concatenate three strings and displays the result.
using namespace System;
void main()
{
String^ s1 = "We went to a bookstore, ";
String^ s2 = "a movie, ";
String^ s3 = "and a restaurant.";
String^ s = String::Concat(s1, s2, s3);
Console::WriteLine(s);
}
// The example displays the following output:
// We went to a bookstore, a movie, and a restaurant.
using System;
public class Example
{
public static void Main()
{
String s1 = "We went to a bookstore, ";
String s2 = "a movie, ";
String s3 = "and a restaurant.";
var s = String.Concat(s1, s2, s3);
Console.WriteLine(s);
}
}
// The example displays the following output:
// We went to a bookstore, a movie, and a restaurant.
open System
let s1 = "We went to a bookstore, "
let s2 = "a movie, "
let s3 = "and a restaurant."
String.Concat(s1, s2, s3)
|> printfn "%s"
// The example displays the following output:
// We went to a bookstore, a movie, and a restaurant.
Public Module Example
Public Sub Main()
Dim s1 As String = "We went to a bookstore, "
Dim s2 As String = "a movie, "
Dim s3 As String = "and a restaurant."
Dim s = String.Concat(s1, s2, s3)
Console.WriteLine(s)
End Sub
End Module
' The example displays the following output:
' We went to a bookstore, a movie, and a restaurant.
Remarks
The method concatenates str0
, str1
, and str2
; it does not add any delimiters.
See also
Applies to
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of three specified read-only character spans.
public:
static System::String ^ Concat(ReadOnlySpan<char> str0, ReadOnlySpan<char> str1, ReadOnlySpan<char> str2);
public static string Concat (ReadOnlySpan<char> str0, ReadOnlySpan<char> str1, ReadOnlySpan<char> str2);
static member Concat : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Concat (str0 As ReadOnlySpan(Of Char), str1 As ReadOnlySpan(Of Char), str2 As ReadOnlySpan(Of Char)) As String
Parameters
- str0
- ReadOnlySpan<Char>
The first read-only character span to concatenate.
- str1
- ReadOnlySpan<Char>
The second read-only character span to concatenate.
- str2
- ReadOnlySpan<Char>
The third read-only character span to concatenate.
Returns
The concatenated string representations of the values of str0
, str1
and str2
.
Applies to
Concat(Object, Object, Object)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of three specified objects.
public:
static System::String ^ Concat(System::Object ^ arg0, System::Object ^ arg1, System::Object ^ arg2);
public static string Concat (object arg0, object arg1, object arg2);
public static string Concat (object? arg0, object? arg1, object? arg2);
static member Concat : obj * obj * obj -> string
Public Shared Function Concat (arg0 As Object, arg1 As Object, arg2 As Object) As String
Parameters
- arg0
- Object
The first object to concatenate.
- arg1
- Object
The second object to concatenate.
- arg2
- Object
The third object to concatenate.
Returns
The concatenated string representations of the values of arg0
, arg1
, and arg2
.
Examples
The following example demonstrates the Concat method.
using namespace System;
int main()
{
int i = -123;
Object^ o = i;
array<Object^>^objs = { -123, -456, -789};
Console::WriteLine("Concatenate 1, 2, and 3 objects:");
Console::WriteLine("1) {0}", String::Concat(o));
Console::WriteLine("2) {0}", String::Concat(o, o));
Console::WriteLine("3) {0}", String::Concat(o, o, o));
Console::WriteLine("\nConcatenate 4 objects and a variable length parameter list:" );
Console::WriteLine("4) {0}", String::Concat(o, o, o, o));
Console::WriteLine("5) {0}", String::Concat( o, o, o, o, o));
Console::WriteLine("\nConcatenate a 3-element object array:");
Console::WriteLine("6) {0}", String::Concat(objs));
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
using System;
class stringConcat5 {
public static void Main() {
int i = -123;
Object o = i;
Object[] objs = new Object[] {-123, -456, -789};
Console.WriteLine("Concatenate 1, 2, and 3 objects:");
Console.WriteLine("1) {0}", String.Concat(o));
Console.WriteLine("2) {0}", String.Concat(o, o));
Console.WriteLine("3) {0}", String.Concat(o, o, o));
Console.WriteLine("\nConcatenate 4 objects and a variable length parameter list:");
Console.WriteLine("4) {0}", String.Concat(o, o, o, o));
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o));
Console.WriteLine("\nConcatenate a 3-element object array:");
Console.WriteLine("6) {0}", String.Concat(objs));
}
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
open System
let i = -123
let o: obj = i
let objs: obj[] = [| -123; -456; -789 |]
printfn "Concatenate 1, 2, and 3 objects:"
printfn $"1) {String.Concat o}"
printfn $"2) {String.Concat(o, o)}"
printfn $"3) {String.Concat(o, o, o)}"
printfn "\nConcatenate 4 objects and a variable length parameter list:"
printfn $"4) {String.Concat(o, o, o, o)}"
printfn $"5) {String.Concat(o, o, o, o, o)}"
printfn "\nConcatenate a 3-element object array:"
printfn $"6) {String.Concat objs}"
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
Class stringConcat5
Public Shared Sub Main()
Dim i As Integer = - 123
Dim o As [Object] = i
Dim objs() As [Object] = {-123, -456, -789}
Console.WriteLine("Concatenate 1, 2, and 3 objects:")
Console.WriteLine("1) {0}", [String].Concat(o))
Console.WriteLine("2) {0}", [String].Concat(o, o))
Console.WriteLine("3) {0}", [String].Concat(o, o, o))
Console.WriteLine(vbCrLf & "Concatenate 4 objects and a variable length parameter list:")
Console.WriteLine("4) {0}", String.Concat(o, o, o, o))
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o))
Console.WriteLine(vbCrLf & "Concatenate a 3-element object array:")
Console.WriteLine("6) {0}", [String].Concat(objs))
End Sub
End Class
'The example displays the following output:
' Concatenate 1, 2, and 3 objects:
' 1) -123
' 2) -123-123
' 3) -123-123-123
'
' Concatenate 4 objects and a variable length parameter list:
' 4) -123-123-123-123
' 5) -123-123-123-123-123
'
' Concatenate a 3-element object array:
' 6) -123-456-789
Remarks
The method concatenates arg0
, arg1
, and arg2
by calling the parameterless ToString
method of each object; it does not add any delimiters.
String.Empty is used in place of any null argument.
See also
Applies to
Concat(String, String)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates two specified instances of String.
public:
static System::String ^ Concat(System::String ^ str0, System::String ^ str1);
public static string Concat (string str0, string str1);
public static string Concat (string? str0, string? str1);
static member Concat : string * string -> string
Public Shared Function Concat (str0 As String, str1 As String) As String
Parameters
- str0
- String
The first string to concatenate.
- str1
- String
The second string to concatenate.
Returns
The concatenation of str0
and str1
.
Examples
The following example concatenates a person's first, middle, and last name.
using namespace System;
int main()
{
// we want to simply quickly add this person's name together
String^ fName = "Simon";
String^ mName = "Jake";
String^ lName = "Harrows";
// because we want a name to appear with a space in between each name,
// put a space on the front of the middle, and last name, allowing for
// the fact that a space may already be there
mName = String::Concat( " ", mName->Trim() );
lName = String::Concat( " ", lName->Trim() );
// this line simply concatenates the two strings
Console::WriteLine( "Welcome to this page, '{0}'!", String::Concat( String::Concat( fName, mName ), lName ) );
}
// The example displays the following output:
// Welcome to this page, 'Simon Jake Harrows'!
using System;
public class ConcatTest {
public static void Main() {
// we want to simply quickly add this person's name together
string fName = "Simon";
string mName = "Jake";
string lName = "Harrows";
// because we want a name to appear with a space in between each name,
// put a space on the front of the middle, and last name, allowing for
// the fact that a space may already be there
mName = " " + mName.Trim();
lName = " " + lName.Trim();
// this line simply concatenates the two strings
Console.WriteLine("Welcome to this page, '{0}'!", string.Concat( string.Concat(fName, mName), lName ) );
}
}
// The example displays the following output:
// Welcome to this page, 'Simon Jake Harrows'!
open System
[<EntryPoint>]
let main _ =
// we want to simply quickly add this person's name together
let fName = "Simon"
let mName = "Jake"
let lName = "Harrows"
// because we want a name to appear with a space in between each name,
// put a space on the front of the middle, and last name, allowing for
// the fact that a space may already be there
let mName = " " + mName.Trim()
let lName = " " + lName.Trim()
// this line simply concatenates the two strings
printfn $"Welcome to this page, '{String.Concat(String.Concat(fName, mName), lName)}'!"
0
// The example displays the following output:
// Welcome to this page, 'Simon Jake Harrows'!
Public Class ConcatTest
Public Shared Sub Main()
Dim fName As String = "Simon"
Dim mName As String = "Jake"
Dim lName As String = "Harrows"
' We want to simply quickly add this person's name together.
' Because we want a name to appear with a space in between each name,
' we put a space on the front of the middle, and last name, allowing for
' the fact that a space may already be there.
mName = " " + mName.Trim()
lName = " " + lName.Trim()
' This line simply concatenates the two strings.
Console.WriteLine("Welcome to this page, '{0}'!", _
String.Concat(String.Concat(fName, mName), lName))
End Sub
End Class
' The example displays the following output:
' Welcome to this page, 'Simon Jake Harrows'!
Remarks
The method concatenates str0
and str1
; it does not add any delimiters.
An Empty string is used in place of any null argument.
See also
Applies to
Concat(IEnumerable<String>)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the members of a constructed IEnumerable<T> collection of type String.
public:
static System::String ^ Concat(System::Collections::Generic::IEnumerable<System::String ^> ^ values);
public static string Concat (System.Collections.Generic.IEnumerable<string> values);
public static string Concat (System.Collections.Generic.IEnumerable<string?> values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Concat (System.Collections.Generic.IEnumerable<string> values);
static member Concat : seq<string> -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
static member Concat : seq<string> -> string
Public Shared Function Concat (values As IEnumerable(Of String)) As String
Parameters
- values
- IEnumerable<String>
A collection object that implements IEnumerable<T> and whose generic type argument is String.
Returns
The concatenated strings in values
, or Empty if values
is an empty IEnumerable(Of String)
.
- Attributes
Exceptions
values
is null
.
Examples
The following example uses the Sieve of Eratosthenes algorithm to calculate the prime numbers that are less than or equal to 100. It assigns the result to a List<T> object of type String, which it then passes to the Concat(IEnumerable<String>) method.
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
int maxPrime = 100;
IEnumerable<String> primeList = GetPrimes(maxPrime);
Console.WriteLine("Primes less than {0}:", maxPrime);
Console.WriteLine(" {0}", String.Concat(primeList));
}
private static IEnumerable<String> GetPrimes(int maxPrime)
{
Array values = Array.CreateInstance(typeof(int),
new int[] { maxPrime - 1}, new int[] { 2 });
// Use Sieve of Erathsthenes 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<String> primes = new List<String>();
for (int ctr = values.GetLowerBound(0); ctr <= values.GetUpperBound(0); ctr++)
if ((int) values.GetValue(ctr) == 0)
primes.Add(ctr.ToString() + " ");
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
open System
let getPrimes maxPrime =
let values = Array.CreateInstance(typeof<int>, [| maxPrime - 1|], [| 2 |])
// Use Sieve of Erathsthenes to determine prime numbers.
for i = values.GetLowerBound 0 to values.GetUpperBound 0 |> float |> sqrt |> ceil |> int do
if values.GetValue i :?> int <> 1 then
for multiplier = i to maxPrime / 2 do
if i * multiplier <= maxPrime then
values.SetValue(1, i * multiplier)
seq {
for i = values.GetLowerBound 0 to values.GetUpperBound 0 do
if values.GetValue i :?> int = 0 then
string i + " "
}
let maxPrime = 100
let primeList = getPrimes maxPrime
printfn $"Primes less than {maxPrime}:"
printfn $" {String.Concat primeList}"
// 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 primeList As IEnumerable(Of String) = GetPrimes(maxPrime)
Console.WriteLine("Primes less than {0}:", maxPrime)
Console.WriteLine(" {0}", String.Concat(primeList))
End Sub
Private Function GetPrimes(maxPrime As Integer) As IEnumerable(Of String)
Dim values As Array = Array.CreateInstance(GetType(Integer), _
New Integer() { maxPrime - 1}, New Integer(){ 2 })
' Use Sieve of Erathsthenes 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
Remarks
The method concatenates each object in values
; it does not add any delimiters. To specify a delimiter between each member of values
, call the Join(String, IEnumerable<String>) method.
An Empty string is used in place of any null element in values
.
If values
is an empty IEnumerable(Of String)
, the method returns String.Empty. If values
is null
, the method throws an ArgumentNullException exception.
Concat(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. It is particularly useful with Language-Integrated Query (LINQ) query expressions. 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"). The IEnumerable(Of String)
collection that is returned by the Enumerable.Where method is passed to the Concat(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.Concat( 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(((char)(charValue + ctr)).ToString());
return alphabet;
}
}
// The example displays the following output:
// MNOPQRSTUVWXYZ
// This example uses the F# Seq.filter function instead of Linq.
open System
let getAlphabet upper =
let charValue = if upper then 65 else 97
seq {
for i = 0 to 25 do
charValue + i |> char |> string
}
getAlphabet true
|> Seq.filter (fun letter -> letter.CompareTo "M" >= 0)
|> String.Concat
|> printfn "%s"
// The example displays the following output:
// MNOPQRSTUVWXYZ
Imports System.Collections.Generic
Imports System.Linq
Module modMain
Public Sub Main()
Dim output As String = String.Concat(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:
' MNOPQRSTUVWXYZ
Applies to
Concat(Object, Object)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of two specified objects.
public:
static System::String ^ Concat(System::Object ^ arg0, System::Object ^ arg1);
public static string Concat (object arg0, object arg1);
public static string Concat (object? arg0, object? arg1);
static member Concat : obj * obj -> string
Public Shared Function Concat (arg0 As Object, arg1 As Object) As String
Parameters
- arg0
- Object
The first object to concatenate.
- arg1
- Object
The second object to concatenate.
Returns
The concatenated string representations of the values of arg0
and arg1
.
Examples
The following example demonstrates the Concat method.
using namespace System;
int main()
{
int i = -123;
Object^ o = i;
array<Object^>^objs = { -123, -456, -789};
Console::WriteLine("Concatenate 1, 2, and 3 objects:");
Console::WriteLine("1) {0}", String::Concat(o));
Console::WriteLine("2) {0}", String::Concat(o, o));
Console::WriteLine("3) {0}", String::Concat(o, o, o));
Console::WriteLine("\nConcatenate 4 objects and a variable length parameter list:" );
Console::WriteLine("4) {0}", String::Concat(o, o, o, o));
Console::WriteLine("5) {0}", String::Concat( o, o, o, o, o));
Console::WriteLine("\nConcatenate a 3-element object array:");
Console::WriteLine("6) {0}", String::Concat(objs));
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
using System;
class stringConcat5 {
public static void Main() {
int i = -123;
Object o = i;
Object[] objs = new Object[] {-123, -456, -789};
Console.WriteLine("Concatenate 1, 2, and 3 objects:");
Console.WriteLine("1) {0}", String.Concat(o));
Console.WriteLine("2) {0}", String.Concat(o, o));
Console.WriteLine("3) {0}", String.Concat(o, o, o));
Console.WriteLine("\nConcatenate 4 objects and a variable length parameter list:");
Console.WriteLine("4) {0}", String.Concat(o, o, o, o));
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o));
Console.WriteLine("\nConcatenate a 3-element object array:");
Console.WriteLine("6) {0}", String.Concat(objs));
}
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
open System
let i = -123
let o: obj = i
let objs: obj[] = [| -123; -456; -789 |]
printfn "Concatenate 1, 2, and 3 objects:"
printfn $"1) {String.Concat o}"
printfn $"2) {String.Concat(o, o)}"
printfn $"3) {String.Concat(o, o, o)}"
printfn "\nConcatenate 4 objects and a variable length parameter list:"
printfn $"4) {String.Concat(o, o, o, o)}"
printfn $"5) {String.Concat(o, o, o, o, o)}"
printfn "\nConcatenate a 3-element object array:"
printfn $"6) {String.Concat objs}"
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
Class stringConcat5
Public Shared Sub Main()
Dim i As Integer = - 123
Dim o As [Object] = i
Dim objs() As [Object] = {-123, -456, -789}
Console.WriteLine("Concatenate 1, 2, and 3 objects:")
Console.WriteLine("1) {0}", [String].Concat(o))
Console.WriteLine("2) {0}", [String].Concat(o, o))
Console.WriteLine("3) {0}", [String].Concat(o, o, o))
Console.WriteLine(vbCrLf & "Concatenate 4 objects and a variable length parameter list:")
Console.WriteLine("4) {0}", String.Concat(o, o, o, o))
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o))
Console.WriteLine(vbCrLf & "Concatenate a 3-element object array:")
Console.WriteLine("6) {0}", [String].Concat(objs))
End Sub
End Class
'The example displays the following output:
' Concatenate 1, 2, and 3 objects:
' 1) -123
' 2) -123-123
' 3) -123-123-123
'
' Concatenate 4 objects and a variable length parameter list:
' 4) -123-123-123-123
' 5) -123-123-123-123-123
'
' Concatenate a 3-element object array:
' 6) -123-456-789
Remarks
The method concatenates arg0
and arg1
by calling the parameterless ToString
method of arg0
and arg1
; it does not add any delimiters.
String.Empty is used in place of any null argument.
If either of the arguments is an array reference, the method concatenates a string representing that array, instead of its members (for example, "System.String[]").
See also
Applies to
Concat(String[])
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Important
This API is not CLS-compliant.
Concatenates the elements of a specified String array.
public:
static System::String ^ Concat(... cli::array <System::String ^> ^ values);
public static string Concat (params string[] values);
public static string Concat (params string?[] values);
[System.CLSCompliant(false)]
public static string Concat (params string[] values);
static member Concat : string[] -> string
[<System.CLSCompliant(false)>]
static member Concat : string[] -> string
Public Shared Function Concat (ParamArray values As String()) As String
Parameters
- values
- String[]
An array of string instances.
Returns
The concatenated elements of values
.
- Attributes
Exceptions
values
is null
.
Out of memory.
Examples
The following example demonstrates the use of the Concat method with a String array.
using namespace System;
int main()
{
// Make an array of strings. Note that we have included spaces.
array<String^>^s = { "hello ", "and ", "welcome ", "to ",
"this ", "demo! "};
// Put all the strings together.
Console::WriteLine( String::Concat(s) );
// Sort the strings, and put them together.
Array::Sort( s );
Console::WriteLine( String::Concat(s));
}
// The example displays the following output:
// hello and welcome to this demo!
// and demo! hello this to welcome
using System;
public class Example
{
public static void Main()
{
// Make an array of strings. Note that we have included spaces.
string [] s = { "hello ", "and ", "welcome ", "to ",
"this ", "demo! " };
// Put all the strings together.
Console.WriteLine(string.Concat(s));
// Sort the strings, and put them together.
Array.Sort(s);
Console.WriteLine(string.Concat(s));
}
}
// The example displays the following output:
// hello and welcome to this demo!
// and demo! hello this to welcome
open System
// Make an array of strings. Note that we have included spaces.
let s =
[| "hello "; "and "; "welcome "; "to "
"this "; "demo! " |]
// Put all the strings together.
printfn $"{String.Concat s}"
// Sort the strings, and put them together.
Array.Sort s
printfn $"{String.Concat s}"
// The example displays the following output:
// hello and welcome to this demo!
// and demo! hello this to welcome
Public Class Example
Public Shared Sub Main()
' Make an array of strings. Note that we have included spaces.
Dim s As String() = { "hello ", "and ", "welcome ", "to ",
"this ", "demo! "}
' Put all the strings together.
Console.WriteLine(String.Concat(s))
' Sort the strings, and put them together.
Array.Sort(s)
Console.WriteLine(String.Concat(s))
End Sub
End Class
' The example displays the following output:
' hello and welcome to this demo!
' and demo! hello this to welcome
Remarks
The method concatenates each object in values
; it does not add any delimiters.
An Empty string is used in place of any null object in the array.
See also
Applies to
Concat(ReadOnlySpan<String>)
Concatenates the elements of a specified span of String.
public:
static System::String ^ Concat(ReadOnlySpan<System::String ^> values);
public static string Concat (scoped ReadOnlySpan<string?> values);
static member Concat : ReadOnlySpan<string> -> string
Public Shared Function Concat (values As ReadOnlySpan(Of String)) As String
Parameters
- values
- ReadOnlySpan<String>
A span of String instances.
Returns
The concatenated elements of values
.
Applies to
Concat(ReadOnlySpan<Object>)
Concatenates the string representations of the elements in a specified span of objects.
public:
static System::String ^ Concat(ReadOnlySpan<System::Object ^> args);
public static string Concat (scoped ReadOnlySpan<object?> args);
static member Concat : ReadOnlySpan<obj> -> string
Public Shared Function Concat (args As ReadOnlySpan(Of Object)) As String
Parameters
- args
- ReadOnlySpan<Object>
A span of objects that contains the elements to concatenate.
Returns
The concatenated string representations of the values of the elements in args
.
Applies to
Concat(Object[])
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of the elements in a specified Object array.
public:
static System::String ^ Concat(... cli::array <System::Object ^> ^ args);
public static string Concat (params object[] args);
public static string Concat (params object?[] args);
static member Concat : obj[] -> string
Public Shared Function Concat (ParamArray args As Object()) As String
Parameters
- args
- Object[]
An object array that contains the elements to concatenate.
Returns
The concatenated string representations of the values of the elements in args
.
Exceptions
args
is null
.
Out of memory.
Examples
The following example demonstrates the use of the Concat method with an Object array.
using System;
public class ConcatTest {
public static void Main() {
// Create a group of objects.
Test1 t1 = new Test1();
Test2 t2 = new Test2();
int i = 16;
string s = "Demonstration";
// Place the objects in an array.
object [] o = { t1, i, t2, s };
// Concatenate the objects together as a string. To do this,
// the ToString method of each of the objects is called.
Console.WriteLine(string.Concat(o));
}
}
// Create two empty test classes.
class Test1 {
}
class Test2 {
}
// The example displays the following output:
// Test116Test2Demonstration
open System
// Create two empty test classes.
type Test1() = class end
type Test2() = class end
// Create a group of objects.
let t1 = new Test1()
let t2 = new Test2()
let i = 16
let s = "Demonstration"
// Place the objects in an array.
let o: obj[] = [| t1; i; t2; s |]
// Concatenate the objects together as a string. To do this,
// the ToString method of each of the objects is called.
printfn $"{String.Concat o}"
// The example displays the following output:
// Test116Test2Demonstration
Public Class ConcatTest
Public Shared Sub Main()
Dim t1 As New Test1()
Dim t2 As New Test2()
Dim i As Integer = 16
Dim s As String = "Demonstration"
Dim o As Object() = {t1, i, t2, s}
' create a group of objects
' place the objects in an array
' concatenate the objects together as a string. To do this,
' the ToString method in the objects is called
Console.WriteLine(String.Concat(o))
End Sub
End Class
' imagine these test classes are full-fledged objects...
Class Test1
End Class
Class Test2
End Class
Remarks
The method concatenates each object in args
by calling the parameterless ToString
method of that object; it does not add any delimiters.
String.Empty is used in place of any null object in the array.
Notes to Callers
This method is not called by C++ code. The C++ compiler resolves calls to Concat that have four or more object parameters as a call to Concat(Object, Object, Object, Object).
See also
Applies to
Concat(Object)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Creates the string representation of a specified object.
public:
static System::String ^ Concat(System::Object ^ arg0);
public static string Concat (object arg0);
public static string Concat (object? arg0);
static member Concat : obj -> string
Public Shared Function Concat (arg0 As Object) As String
Parameters
- arg0
- Object
The object to represent, or null
.
Returns
The string representation of the value of arg0
, or Empty if arg0
is null
.
Examples
The following example demonstrates the Concat method.
using namespace System;
int main()
{
int i = -123;
Object^ o = i;
array<Object^>^objs = { -123, -456, -789};
Console::WriteLine("Concatenate 1, 2, and 3 objects:");
Console::WriteLine("1) {0}", String::Concat(o));
Console::WriteLine("2) {0}", String::Concat(o, o));
Console::WriteLine("3) {0}", String::Concat(o, o, o));
Console::WriteLine("\nConcatenate 4 objects and a variable length parameter list:" );
Console::WriteLine("4) {0}", String::Concat(o, o, o, o));
Console::WriteLine("5) {0}", String::Concat( o, o, o, o, o));
Console::WriteLine("\nConcatenate a 3-element object array:");
Console::WriteLine("6) {0}", String::Concat(objs));
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
using System;
class stringConcat5 {
public static void Main() {
int i = -123;
Object o = i;
Object[] objs = new Object[] {-123, -456, -789};
Console.WriteLine("Concatenate 1, 2, and 3 objects:");
Console.WriteLine("1) {0}", String.Concat(o));
Console.WriteLine("2) {0}", String.Concat(o, o));
Console.WriteLine("3) {0}", String.Concat(o, o, o));
Console.WriteLine("\nConcatenate 4 objects and a variable length parameter list:");
Console.WriteLine("4) {0}", String.Concat(o, o, o, o));
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o));
Console.WriteLine("\nConcatenate a 3-element object array:");
Console.WriteLine("6) {0}", String.Concat(objs));
}
}
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
open System
let i = -123
let o: obj = i
let objs: obj[] = [| -123; -456; -789 |]
printfn "Concatenate 1, 2, and 3 objects:"
printfn $"1) {String.Concat o}"
printfn $"2) {String.Concat(o, o)}"
printfn $"3) {String.Concat(o, o, o)}"
printfn "\nConcatenate 4 objects and a variable length parameter list:"
printfn $"4) {String.Concat(o, o, o, o)}"
printfn $"5) {String.Concat(o, o, o, o, o)}"
printfn "\nConcatenate a 3-element object array:"
printfn $"6) {String.Concat objs}"
// The example displays the following output:
// Concatenate 1, 2, and 3 objects:
// 1) -123
// 2) -123-123
// 3) -123-123-123
//
// Concatenate 4 objects and a variable length parameter list:
// 4) -123-123-123-123
// 5) -123-123-123-123-123
//
// Concatenate a 3-element object array:
// 6) -123-456-789
Class stringConcat5
Public Shared Sub Main()
Dim i As Integer = - 123
Dim o As [Object] = i
Dim objs() As [Object] = {-123, -456, -789}
Console.WriteLine("Concatenate 1, 2, and 3 objects:")
Console.WriteLine("1) {0}", [String].Concat(o))
Console.WriteLine("2) {0}", [String].Concat(o, o))
Console.WriteLine("3) {0}", [String].Concat(o, o, o))
Console.WriteLine(vbCrLf & "Concatenate 4 objects and a variable length parameter list:")
Console.WriteLine("4) {0}", String.Concat(o, o, o, o))
Console.WriteLine("5) {0}", String.Concat(o, o, o, o, o))
Console.WriteLine(vbCrLf & "Concatenate a 3-element object array:")
Console.WriteLine("6) {0}", [String].Concat(objs))
End Sub
End Class
'The example displays the following output:
' Concatenate 1, 2, and 3 objects:
' 1) -123
' 2) -123-123
' 3) -123-123-123
'
' Concatenate 4 objects and a variable length parameter list:
' 4) -123-123-123-123
' 5) -123-123-123-123-123
'
' Concatenate a 3-element object array:
' 6) -123-456-789
Remarks
The Concat(Object) method represents arg0
as a string by calling its parameterless ToString
method.
See also
Applies to
Concat(ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the string representations of two specified read-only character spans.
public:
static System::String ^ Concat(ReadOnlySpan<char> str0, ReadOnlySpan<char> str1);
public static string Concat (ReadOnlySpan<char> str0, ReadOnlySpan<char> str1);
static member Concat : ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Concat (str0 As ReadOnlySpan(Of Char), str1 As ReadOnlySpan(Of Char)) As String
Parameters
- str0
- ReadOnlySpan<Char>
The first read-only character span to concatenate.
- str1
- ReadOnlySpan<Char>
The second read-only character span to concatenate.
Returns
The concatenated string representations of the values of str0
and str1
.
Applies to
Concat<T>(IEnumerable<T>)
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
- Source:
- String.Manipulation.cs
Concatenates the members of an IEnumerable<T> implementation.
public:
generic <typename T>
static System::String ^ Concat(System::Collections::Generic::IEnumerable<T> ^ values);
public static string Concat<T> (System.Collections.Generic.IEnumerable<T> values);
[System.Runtime.InteropServices.ComVisible(false)]
public static string Concat<T> (System.Collections.Generic.IEnumerable<T> values);
static member Concat : seq<'T> -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
static member Concat : seq<'T> -> string
Public Shared Function Concat(Of T) (values As IEnumerable(Of T)) As String
Type Parameters
- T
The type of the members of values
.
Parameters
- values
- IEnumerable<T>
A collection object that implements the IEnumerable<T> interface.
Returns
The concatenated members in values
.
- Attributes
Exceptions
values
is null
.
Examples
The following example defines a very simple Animal
class that contains the name of an animal and the order to which it belongs. It then defines a List<T> object to contain a number of Animal
objects. The Enumerable.Where extension method is called to extract the Animal
objects whose Order
property equals "Rodent". The result is passed to the Concat<T>(IEnumerable<T>) method and displayed to the console.
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.Concat(animals.Where( animal =>
(animal.Order == "Rodent")));
Console.WriteLine(output);
}
}
// The example displays the following output:
// SquirrelCapybara
// This example uses the F# Seq.filter function instead of Linq.
open System
type Animal =
{ Kind: string
Order: string }
override this.ToString() =
this.Kind
let animals = ResizeArray()
animals.Add { Kind = "Squirrel"; Order = "Rodent" }
animals.Add { Kind = "Gray Wolf"; Order = "Carnivora" }
animals.Add { Kind = "Capybara"; Order = "Rodent" }
Seq.filter (fun animal -> animal.Order = "Rodent")
|> String.Concat
|> printfn "%s"
// The example displays the following output:
// SquirrelCapybara
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.Concat(animals.Where(Function(animal) _
animal.Order = "Rodent"))
Console.WriteLine(output)
End Sub
End Module
' The example displays the following output:
' SquirrelCapybara
Remarks
The method concatenates each object in values
; it does not add any delimiters.
An Empty string is used in place of any null argument.
Concat<T>(IEnumerable<T>) is a convenience method that lets you concatenate each element in an IEnumerable<T> collection without first converting the elements to strings. It is particularly useful with Language-Integrated Query (LINQ) query expressions, as the example illustrates. The string representation of each object in the IEnumerable<T> collection is derived by calling that object's ToString
method.