.net 3.5 用逗号分隔三元多值字段的最快方法

.net 3.5 用逗号分隔三元多值字段的最快方法,.net-3.5,tridion,tridion2009,.net 3.5,Tridion,Tridion2009,将多值Tridion文本字段拆分为逗号分隔字符串的最快方法是什么? 在我的例子中,我使用的是C#,但我想任何其他例子都是受欢迎的。 这似乎是一条丑陋而漫长的道路: var multiTextField = fields["multiTextField"] as TextField; string multiCommaField = String.Empty; for (int i = 0; i < multiTextField.Values.Count; i++) { multi

将多值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() + ",";
}
var multiTextField=fields[“multiTextField”]作为TextField;
string multicmmafield=string.Empty;
对于(int i=0;i

编辑:我正在使用.NET 3.5和Tridion 2009 SP1。您是否尝试了
multiTextField.Values.ToArray().Join(“,”)

您可以使用LINQ:

var multiTextField = fields["multiTextField"] as TextField;
string delimeter = ",";     
Console.WriteLine(multiTextField.Values.Aggregate((i, j) => i + delimeter + j))
或者以更短(更丑)的方式:


您还没有在问题中指定Tridion或.Net的版本,但是可以使用一些不同的技术从textfield中获取逗号分隔的值

如果您使用的是.Net 4,我相信您可以:

string.Join(",", multiTextField.Values);
只要
multiTextField.Values
实现IList

如果您使用的是.Net 3.5或更早版本,我认为
string.Join()
函数需要数组,而不是
IList


关于这里的选项,或者这里的选项,或者这里的选项,或者这里的选项,我们进行了一次非常好的讨论。多值文本字段已经是一个逗号分隔的字符串“在水下”,因此您可以在Dreamweaver层中像这样抓取它:

@@(Component.multiValueField)@@

在执行时间方面最快的方法,或者在代码量最小方面感谢@Hendrik的更新-尝试我在答案中添加的链接()接受的答案是在执行连接之前将IList转换为数组。不幸的是,在3.5中,nice and clean.NET 4方法还不可用。我查看了其他链接,但是那里的解决方案不会使脚本变得更小。用户978511给出的答案既短又快。很公平——很高兴它对你有用。我发现对于简单的事情来说,与稍长的方法相比,LINQ可能很难阅读和支持,但是如果有性能改进,那么我同意你接受的答案。这种方法是最短的,似乎也更快。谢谢很抱歉@peter kjaer,ToArray方法是必须首先创建的LINQ方法。至少在这个链接中看起来是这样的:我在官方文档中看到了它,但我没有时间真正尝试它。我的第一个想法是“加入”,所以我只是浏览了文档中的属性并发布了一个建议。这对于Dreamweaver模板制作来说是一个很好的记忆!感谢Dominicy,您还可以计算程序集TBB中的表达式。
@@(Component.multiValueField)@@