如何使布尔值在 true 时在报告中插入 X

  • 本文关键字:报告 插入 true 何使布 c#
  • 更新时间 :
  • 英文 :

foreach (SalesInfo sales in this)
{
if (sales.Senior == true)
senX = "x";
if (sales.Veteran == true)
vetX = "x";
fileOut.WriteLine("{0:d4} {1,-25} {2,-14} {3,3} {4,3} {5,10:MM/dd/yyyy} {6,10:n} "
+ "{7,10:n} {8,8:n} {9,6:n} {10,10:n}",
sales.ID, sales.Name, sales.City, senX, vetX, sales.PurDate,
sales.ProductTotal, sales.DiscountTotal, sales.SalesTax, sales.ShippingCharge,
sales.InvoiceTotal);
}

所以我的问题是,当高级或退伍军人的数据成员为真时,我需要在我的报告中插入一个 X。 这个工作所以我想是否有人知道更好的方法?

您必须在编写行后设置senXvetX"",因此对于新的迭代,它是空的。否则,无论布尔值如何,您都将在整个报表中获得 exe。

另一种解决方案是使用(sales.Senior?"X":"")作为 WriteLine 语句中的表达式,因此您根本不需要变量。

foreach (SalesInfo sales in this)
{
senX = sales.Senior ? "x" : "";
vetX = sales.Veteran ? "x" : "";
fileOut.WriteLine("{0:d4} {1,-25} {2,-14} {3,3} {4,3} {5,10:MM/dd/yyyy} {6,10:n} "
+ "{7,10:n} {8,8:n} {9,6:n} {10,10:n}",
sales.ID, sales.Name, sales.City, senX, vetX, sales.PurDate,
sales.ProductTotal, sales.DiscountTotal, sales.SalesTax, sales.ShippingCharge,
sales.InvoiceTotal);
}

如果在赋值中使用三元运算符 (x ? y : z),它将负责分配 "x" 并将值清除为 " 每次循环迭代。

尝试添加字符"{"和"}"!

if (sales.Senior == true)
{
senX = "x";
}
if (sales.Veteran == true)
{
vetX = "x";
}

最新更新