从EntityCollection构建一个字符串

时间:2011-10-25 23:47:37

标签: c# .net string linq concatenation

使用LINQ或String.Join

是否有更有效的方法
var sb = new StringBuilder();
foreach (var s in cls.Students)
  sb.Append("<div id=\"s" + s.Id + "\">" + s.FirstName +
            " " + s.LastName + "</div>");

3 个答案:

答案 0 :(得分:1)

您可以使用string.Concat

string result = string.Concat(cls.Students.Select(
    s => string.Format("<div id=\"s{0}\">{1} {2}</div>", s.Id, s.FirstName, s.LastName)
));

它更简洁一点,但它可能不会给你更多的表现。使用StringBuilder已经非常有效了。

备注

  • 在.NET 3.5及更早版本中,您还需要在最后一个括号之前添加.ToArray()
  • 您应该HTML转义s.FirstNames.LastName。我假设s.ID是一个整数,因此是安全的。

答案 1 :(得分:1)

我会做这样的事情。

StringBuilder builder = new StringBuilder();
cls.Students.ForEach(s => builder.Append(HttpUtility.HtmlEncode(string.Format("<div id=\"{0}\">{1} {2}</div>", s.Id, s.FirstName, s.LastName)));

答案 2 :(得分:0)

中的vb
Dim XXX As System.Xml.Linq.XElement = <div id=<%="s" + s.Id %> ><%= s.FirstName  %> <%= s.LastName  %></div>

无报价