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