0

我有一个这样定义的字符串列表

List<String> lstHeaders = new List<string>(new String[]{"str","str1","str2"}); 

我想要一种方法以特定格式加入所有元素以获得类似的东西

<td>str</td><td>str1</td><td>str2</td>

但是在代码的在线获取这个,就像这样

"<th>"+lstHeaders.functionToGetFormated()+"</th>"
4

5 回答 5

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");
于 2013-01-18T00:20:40.137 回答
2

使用StringBuilder类:

var sb = new StringBuilder();
lstHeaders.ForEach(x => sb.AppendFormat("<td>{0}</td>", x));
return sb.toString()
于 2013-01-18T00:23:24.980 回答
0

您可以执行以下操作:

string.Format("<td>{0}</td>", string.Join("</td><td>", lstHeaders));
于 2013-01-18T00:24:31.693 回答
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));
于 2013-01-18T00:25:45.260 回答
0

通常简单的字符串连接对于构建像 html 和 xml 这样的元数据是有风险的。如果您绝对确定文本不会破坏元语法,您肯定可以使用 StringBuilder 或 LinQ 来做到这一点。说,那些字符串已经被转义了。

否则,您可以考虑使用 HtmlTextWriter。在 LINQ 中使用 HtmlTextWriter 应该不难。

于 2013-01-18T00:47:40.387 回答