エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

String.Join メソッド (String, IEnumerable<String>)

String 型の構築された IEnumerable<T> コレクションのメンバーを連結します。各メンバーの間には、指定した区切り記号が挿入されます。

名前空間:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

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

パラメーター

separator
型 : System.String
区切り記号として使用する文字列。 values が 2 つ以上の要素を含む場合のみ、separator が返される文字列に含まれます。
values
型 : System.Collections.Generic.IEnumerable<String>
連結する文字列を格納しているコレクション。

戻り値

型 : System.String
values のメンバーから成る、separator 文字列で区切られた文字列。 values にメンバーがない場合、メソッドは String.Empty を返します。

例外条件
ArgumentNullException

valuesnull なので、

separatornull である場合は、空の文字列 (String.Empty) が代わりに使用されます。 values のいずれかのメンバーが null である場合は、空の文字列が代わりに使用されます。

Join(String, IEnumerable<String>) は、最初に要素を文字列配列に変換せずに IEnumerable(Of String) コレクション内の各要素を連結することのできる便利なメソッドです。 これは統合言語クエリ (LINQ) のクエリ式で特に便利です。 次の例では、アルファベットの大文字か小文字を含む List(Of String) オブジェクトを、特定の文字 (この例では "M") 以上の文字を選択するラムダ式に渡します。 Enumerable.Where メソッドが返す IEnumerable(Of String) コレクションは Join(String, IEnumerable<String>) メソッドに渡され、結果が 1 つの文字列として表示されます。


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


Sieve の Eratosthenes アルゴリズムを使用して 100 以下の素数を計算する例を次に示します。 結果を String 型の List<T> オブジェクトに代入し、それを Join(String, IEnumerable<String>) メソッドに渡します。


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 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<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


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4

.NET Framework Client Profile

サポート対象 : 4

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2014 Microsoft