我有一个像这样定义的字符串列表
List<String> lstHeaders = new List<string>(new String[]{"str","str1","str2"});
我想要一种方法来加入所有具有特定格式的elemenet来获得类似的东西
<td>str</td><td>str1</td><td>str2</td>
但是只需要在线代码,就像这样
"<th>"+lstHeaders.functionToGetFormated()+"</th>"
答案 0 :(得分:2)
为此编写自己的扩展方法可能更有意义。没有任何内置功能可以完全像那样(我知道)。
public static string WrapElementsWithTag(this IEnumerable<string> input, string wrapper)
{
StringBuilder sb = new StringBuilder();
foreach (string s in input)
{
sb.AppendFormat("<{1}>{0}</{1}>", s, wrapper);
}
return sb.ToString();
}
被称为;
lstHeaders.WrapElementsWithTag("td");
答案 1 :(得分:2)
使用StringBuilder
类:
var sb = new StringBuilder();
lstHeaders.ForEach(x => sb.AppendFormat("<td>{0}</td>", x));
return sb.toString()
答案 2 :(得分:0)
您可以执行以下操作:
string.Format("<td>{0}</td>", string.Join("</td><td>", lstHeaders));
答案 3 :(得分:0)
使用Linq和String.Concat
:
string result = string.Concat(lstHeaders.Select(s => string.Format("<td>{0}</td>", s)));
查询语法可能更清晰:
string result = string.Concat(from s in lstHeaders select string.Format("<td>{0}</td>", s));
答案 4 :(得分:0)
通常,简单的字符串连接对于构建像html和xml这样的元数据是有风险的。如果你绝对确定文本不会破坏元语法,你肯定可以使用StringBuilder或LinQ。比如说,那些字符串已经被转义了。
否则,您可以考虑使用HtmlTextWriter。在LINQ中使用HtmlTextWriter并不难。