将html标记作为前缀和后缀添加到字符串列表中

时间:2018-03-15 09:41:20

标签: c# list append

我正在尝试将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>标签没有附加?

2 个答案:

答案 0 :(得分:7)

因为Select()返回类型为IEnumerable<T>的新集合,所以它不会修改现有集合。所以,您需要引用.Select(u => "<li> " + u + " </li>").ToList();返回的新内容:

lstUniversities = lstUniversities.Select(u => "<li> " + u + " </li>").ToList();

现在我们将新集合分配给lstUniversities变量,我们应该看到预期的输出。

或者使用foreachfor循环来执行此操作:

for(int i=o; i < lstUniversities.Count; i++)
       lstUniversities[i] = "<li> " + lstUniversities[i] + " </li>";

ForEach()

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>");
                    }