如何正确设置来自循环的值的格式
本文关键字:格式 循环 何正确 设置 | 更新日期: 2023-09-27 18:29:11
foreach (var book in query)
{
Response.Write(book.Title);
foreach (var author in book.Authors)
{
Response.Write(" , "+author.FirstName +" "+ author.MiddleInitial +
" "+ author.LastName );
}
}
现在我正在打印书名:所有作者姓名都带有","。
我想打印:(如果他们有多个作者用","(完成(分隔每个作者,并在最后一个作者姓名中添加"AND" - 如果他们没有超过一个作者,则不需要"。
我该怎么做??
你最好先构建字符串,然后将其写入循环之外的屏幕。我建议为此使用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());
使用字符串。联接以使用分隔符合并字符串。
var authors = string.Join(", ", book.Authors.Select(author=>string.Format("{0} {1} {2}", author.FirstName, author.MiddleInitial, author.LastName)));
Response.Write(authors);