12

複数値の Tridion テキスト フィールドをカンマ区切りの文字列に分割する最も簡単な方法は何ですか? 私の場合は C# を使用していますが、他の例も同様に歓迎されると思います。これは醜い長い道のりです:

var multiTextField = fields["multiTextField"] as TextField;
string multiCommaField = String.Empty;

for (int i = 0; i < multiTextField.Values.Count; i++)
{
    multiCommaField += multiTextField.Values[i].ToString() + ",";
}

編集: .NET 3.5 と Tridion 2009 SP1 を使用しています

4

4 に答える 4

9

質問で Tridion または .Net のバージョンを指定していませんが、テキストフィールドからカンマ区切りの値を取得するために使用できるいくつかの異なる手法があります。

.Net 4を使用している場合は、次のことができると思います:

string.Join(",", multiTextField.Values);

multiTextField.ValuesIList を実装している限り。

.Net 3.5 以前を使用している場合、string.Join()関数には .NET ではなく配列が必要だと思いますIList

ここでのオプションに関してかなり良い議論がありましたリストでの文字列結合(.Net 4)
またはここで文字列を結合しようとしています

于 2012-05-15T12:34:35.267 に答える
6

LINQを使用できます。

var multiTextField = fields["multiTextField"] as TextField;
string delimeter = ",";     
Console.WriteLine(multiTextField.Values.Aggregate((i, j) => i + delimeter + j))

またはより短い(醜い)方法で:

((TextField) fields["multiTextField"]).Values.Aggregate((i, j) => i + "," + j))
于 2012-05-15T12:29:23.850 に答える
4

式を評価します。複数値のテキストフィールドは、すでに「水中」のカンマ区切りの文字列であるため、次のようにDreamweaverレイヤーで取得できます。

@@(Component.multiValueField)@@
于 2012-05-15T14:02:04.143 に答える
0

試しましたmultiTextField.Values.ToArray().Join(",")か?

于 2012-05-15T12:28:22.367 に答える