要素を区切るときに

要素を含まないか、1つだけ含むときには、カンマ「,」で区切る必要はありません。そのため、foreach ループでは、少し工夫が必要です。すると、次のような構造が見えてきます。

    string comma = "";
foreach (...) {
sb.Append(comma);
...
comma = ", ";
}

変数 comma の初期値は "" です。すると、foreach ループでは(最初の要素だけ)作業領域 sb の末尾に、空文字列 "" を追加します。そこで、変数 comma には、値 ", " を設定します。そして(次の要素から)作業領域 sb の末尾に、カンマ ", " を追加します。つまり、第2要素以降はつねに、各要素をカンマ「,」で区切ります。さらに、各要素を追加するには、次のようにします。

    sb.Append(Ops.Repr(o));

ここでは、引数 o からどのようにして文字列表現が得られるか(how)は知らなくても、それを使ってなにをしたいか(what)を理解できれば、十分です。インスタンスの文字列表現が欲しいときに、Ops.Repr を利用するだけです。


Previous|3/3|Next