字符串生成器,如果采用追加格式

本文关键字:追加 格式 如果 字符串 | 更新日期: 2023-09-27 18:34:05

我想在字符串生成器 AppendFormat 中有一个简短的 if,这样当数量不同时,我可以向 td 添加两种不同的颜色。

这是我尝试这样做的:

foreach (var item in dataObj.Ord.LineColl)
{
    builder.AppendFormat(
        @"<tr><td align='right'> {0}</td>
          <td> {1}</td>
          <td> {2}</td>
          <td align='right'> {3} {4}</td>" +
            item.OrdQt == item.ShQt? 
            @"<td align='right' bgcolor='#FF000'> {5} {6}</td>" :
            @"<td align='right' bgcolor='#FFFFFFFF'> {5} {6}</td>"
            ,item.LineNumber, item.Product.Code, item.Product.Description,
                    item.OrdQt, item.OrdQt.Code,
                    item.QtyMes, item.OrdQt.Code,
                    item.ShQt, item.OrdQt.Code);
}

问题是发生以下错误:

Cannot implicitly convert type 'string' to 'bool'

字符串生成器,如果采用追加格式

您可以将颜色设置为另一个变量,然后将其包含在AppendFormat中。请注意,其中的变量比字符串中的变量多,根据您的代码段,我不确定哪些是正确的

foreach (var item in dataObj.Ord.LineColl)
{
    var color = (item.OrdQt == item.ShQt) ? '#ff000' : '#ffffff';
    builder.AppendFormat(
        @"<tr><td align='right'>{0}</td>
         <td>{1}</td>
         <td>{2}</td>
         <td align='right'>{3} {4}</td>
         <td align='right' bgcolor='{9}'> {5} {6}</td>", 
            item.LineNumber, item.Product.Code, item.Product.Description,
            item.OrdQt, item.OrdQt.Code, item.QtyMes, item.OrdQt.Code,
            item.ShQt, item.OrdQt.Code, color);
}