foreach (var book in query)
{
Response.Write(book.Title);
foreach (var author in book.Authors)
{
Response.Write(" , "+author.FirstName +" "+ author.MiddleInitial +
" "+ author.LastName );
}
}
现在我正在打印书名:所有作者姓名都带有“,”。
我想要打印:(如果他们有多个作者将每个作者用“,”(完成)分开,并将“AND”添加到最后一个作者姓名 - 如果他们没有多个作者没有“ ,是必需的。
我该怎么做?
答案 0 :(得分:2)
最好先构建字符串,然后将其写入循环外的屏幕。我建议你使用StringBuilder
。
要使用StringBuilder
类,您需要导入System.Text
命名空间:
using System.Text;
以下是一些示例代码:
var builder = new StringBuilder();
foreach (var author in book.Authors)
{
//if the string already contains data append a comma
if (builder.Length > 0)
builder.Append(", ");
//append the author to the string
builder.AppendFormat("{0} {1} {2}", author.FirstName, author.MiddleInitial, author.LastName);
}
Response.Write(builder.ToString());
答案 1 :(得分:1)
使用string.Join将字符串与分隔符组合在一起。
var authors = string.Join(", ", book.Authors.Select(author=>string.Format("{0} {1} {2}", author.FirstName, author.MiddleInitial, author.LastName)));
Response.Write(authors);