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

String.Concat 方法 (IEnumerable<String>)

 

串联类型为 IEnumerable<T>String 构造集合的成员。

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

[ComVisibleAttribute(false)]
public static string Concat(
	IEnumerable<string> values
)

参数

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

一个集合对象,该对象实现 IEnumerable<T>,且其泛型类型参数为 String

返回值

Type: System.String

values 中的串联字符串;如果 values 为空 IEnumerable(Of String),则为 String.Empty

Exception Condition
ArgumentNullException

valuesnull

该方法连接中的每个对象values; 它不会添加任何分隔符。 若要指定的每个成员之间的分隔符values,调用Join(String, IEnumerable<String>)方法。

Empty字符串代替中的任意 null 元素values

如果values是一个空IEnumerable(Of String),该方法返回String.Empty 如果valuesnull,该方法将引发ArgumentNullException异常。

Concat(IEnumerable<String>)是可以串联中的每个元素的便捷方法IEnumerable(Of String)而无需事先将元素转换为字符串数组的集合。 它是使用语言集成查询 (LINQ) 查询表达式特别有用。 下面的示例传入List(Of String)对象,其中包含为 lambda 表达式选择等于或大于特定字母 (即,在示例中,"M") 的字母的字母大写或小写字母。 IEnumerable(Of String)返回的集合Enumerable.Where<TSource>方法传递给Concat(IEnumerable<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(Convert.ToChar(charValue + ctr).ToString());
      return alphabet; 
   }
}
// The example displays the following output:
//      MNOPQRSTUVWXYZ

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

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

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