本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

String.Join<T> 方法 (String, IEnumerable<T>)

 

串联集合的成员,其中在每个成员之间使用指定的分隔符。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

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

参数

separator
Type: System.String

要用作分隔符的字符串。只有在 values 具有多个元素时,separator 才包括在返回的字符串中。

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

一个包含要串联的对象的集合。

返回值

Type: System.String

一个由 values 的成员组成的字符串,这些成员以 separator 字符串分隔。 如果 values 没有成员,则该方法返回 String.Empty

类型参数

T

values 成员的类型。

Exception Condition
ArgumentNullException

valuesnull

如果separatornull,空字符串 (String.Empty) 改为使用。 如果任何成员的valuesnull,改为使用一个空字符串。

Join<T>(String, IEnumerable<T>)是可以串联的每个成员的便捷方法IEnumerable<T>而无需事先将它们转换为字符串的集合。 字符串表示形式中每个对象IEnumerable<T>通过调用该对象的派生集合ToString方法。

此方法是特定语言集成查询 (LINQ) 查询表达式有用。 例如,下面的代码定义一个非常简单Animal类,其中包含的填充动物和它所属于的顺序的名称。 然后,它定义List<T>对象,其中包含大量的Animal对象。 Enumerable.Where<TSource>调用扩展方法来提取Animal对象其Order属性等于"Rodent"。 结果传递到Join<T>(String, IEnumerable<T>)方法。

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

下面的示例使用选筛的埃拉托色尼斯算法来计算小于或等于 100 的质数。 它将结果赋给List<T>对象的整数类型,然后将其传递到Join<T>(String, IEnumerable<T>)方法。

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

通用 Windows 平台
自 8 起可用
.NET Framework
自 4.0 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 4.0 起可用
Windows Phone Silverlight
自 7.1 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: