我正在尝试将html <li>
标记作为前缀和后缀添加到字符串列表的每个元素中。
以下是字符串列表:
IList<string> lstUniversities = new List<string>();
lstUniversities.Add("<sup>1</sup>Harward University, USA");
lstUniversities.Add("<sup>2</sup>Yale University, USA");
lstUniversities.Select(u => "<li> " + u + " </li>").ToList();
预期输出:
<li><sup>1</sup>Harward University, USA</li>
<li><sup>2</sup>Yale University , USA</li>
我可以知道为什么html <li>
标签没有附加?
答案 0 :(得分:7)
因为Select()
返回类型为IEnumerable<T>
的新集合,所以它不会修改现有集合。所以,您需要引用.Select(u => "<li> " + u + " </li>").ToList();
返回的新内容:
lstUniversities = lstUniversities.Select(u => "<li> " + u + " </li>").ToList();
现在我们将新集合分配给lstUniversities
变量,我们应该看到预期的输出。
或者使用foreach
或for
循环来执行此操作:
for(int i=o; i < lstUniversities.Count; i++)
lstUniversities[i] = "<li> " + lstUniversities[i] + " </li>";
lstUniversities.ForEach(u => { u = "<li> " + u + " </li>"; });
答案 1 :(得分:0)
我建议使用stringbuilder。不会扩展并导致代码非常易读,并使输入列表保持清洁。
var stringbuilder = new StringBuilder();
foreach (var item in lstUniversities)
{
stringbuilder.Append("<li>");
//stringbuilder.Add("<sup>1</sup>Harward University, USA");
stringbuilder.Append(item);
stringbuilder.Append("</li>");
}