c# - 带有 if in appendformat 的 stringbuilder

标签 c#

我想在字符串生成器 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);
}

问题是出现如下错误:

无法将类型“string”隐式转换为“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);
}

关于c# - 带有 if in appendformat 的 stringbuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35332910/

相关文章:

c# - 从字节数组解包整数的惯用C#是什么?

c# - 一种文件读写异常处理,在文件中添加日志记录

c# - 使用 Newtonsoft 反序列化 Json 不起作用

c# - 在后台运行异步操作方法

c# - 创建大量 C# 线程的最佳模式

javascript - "ISO-8859-1"JavaScript 中的编码

javascript - ASP .NET 打印 iFrame

c# - 如何将这些名称 "interpolate"转换为我要更新的方法/变量?

C# 将 int 类型的 ArrayList 转换为 Point[]

c# - Websocket上的数据顺序不正确