System.String.Join 方法 (String, IEnumerable)

方法描述

串联类型为 String 的 IEnumerable 构造集合的成员,其中在每个成员之间使用指定的分隔符。

语法定义(C# System.String.Join 方法 (String, IEnumerable) 的用法)

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

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
separator System-String 要用作分隔符的字符串。
values System-Collections-Generic-IEnumerable 一个包含要串联的字符串的集合。
返回值 System.String 一个由 values 的成员组成的字符串,这些成员以 separator 字符串分隔。

提示和注释

如果 separator 为 null,则使用空字符串 (String.Empty)。 如果 values 中的任何成员为 null,则使用空字符串。

Join(String, IEnumerable) 是一个便利方法,通过它可以串联 IEnumerable(Of String) 集合中的每个元素,无需事先将元素转换为字符串数组。 它对于语言集成查询 (LINQ) 查询表达式特别有用。 下面的示例将包含字母表大写或小写字母的 List(Of String) 对象传递到 lambda 表达式,该表达式选择等于或大于特定字母(在此示例中为 "M")的字母。 Enumerable.Where 方法返回的 IEnumerable(Of String) 集合传递到 Join(String, IEnumerable) 方法,将结果显示为单个字符串。

C#

VB

复制

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 GetAlphabet(bool upper)

{

List alphabet = new List();

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

System.String.Join 方法 (String, IEnumerable)例子

它将结果赋值给 String 类型的 List 对象,然后将其传递到 Join(String, IEnumerable) 方法。

using System;
using System.Collections.Generic;

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

   private static List 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 primes = new List();
      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

异常

异常 异常描述
ArgumentNullException values 为 null。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。