Интересно, если (обратите внимание, я избавился от b + = и просто есть b +)
t.Element( "body" ).Nodes()
.Aggregate( "", ( b, node ) => b + node.ToString() );
может быть немного менее эффективным, чем
string.Join( "", t.Element.Nodes()
.Select( n => n.ToString() ).ToArray() );
Не уверен на 100% ... но взглянув на Aggregate () и string.Join () в Reflector ... Я думаю Я читаю это как Aggregate, просто добавляя возвращаемое значение, так что по сути вы получаете :
строка = строка + строка
по сравнению со строкой. Кроме того, там есть упоминание о FastStringAllocation или о чем-то еще, что заставляет меня задуматься о том, что ребята из Microsoft могли бы повысить производительность. Конечно, мой .ToArray () называет это моим отрицанием, но я просто хотел предложить другое предложение.