Dot-Net-3.5
用逗號分隔 Tridion 多值欄位的最快方法
將多值 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
您可以使用 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))
您尚未在問題中指定您的 Tridion 或 .Net 版本,但您可以使用幾種不同的技術從文本欄位中獲取逗號分隔值。
如果您使用的是.Net 4,我相信您可以這樣做:
string.Join(",", multiTextField.Values);只要
multiTextField.Values實現 IList。如果您使用的是 .Net 3.5 或更早版本,我相信該
string.Join()函式需要一個數組而不是IList.這裡有一個很好的討論關於列表上的字元串連接 (.Net 4)
或這裡嘗試字元串。加入 IList (.Net 4)
或從 IList (.Net 3.5) 創建逗號分隔列表