Построить строку из коллекции EntityCollection - PullRequest
1 голос
/ 26 октября 2011

Есть ли более эффективный способ сделать это с помощью 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 ]

1 голос
/ 26 октября 2011

Я бы сделал что-то подобное.

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)));
1 голос
/ 26 октября 2011

Вы можете использовать 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.FirstName и s.LastName.Я предполагаю, что s.ID является целым числом и, следовательно, является безопасным.
0 голосов
/ 26 октября 2011

vb in

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

Нет предложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...