0
我正在使用rdlc報告頁腳位置需要停留在底部,但四個表格頁腳可見性取決於特定條件。準備默認新行作爲空值替換
爲此,我使用Union
並使用Take(4)
來確定是否有任何表格頁腳不可見,因此應在底部替換爲\r\n
。
應該是:
12345
\r\n
\r\n
\r\n
不喜歡這樣的:
\r\n
\r\n
\r\n
12345
這裏是我的代碼。
var footerValues = new[]
{
salesOrder.Subtotal.ToString("N0"),
salesOrder.Discount.ToString("N0"),
salesOrder.PPN.ToString("N0"),
salesOrder.Total.ToString("N0")
};
var stats = new[] {
salesOrder.Discount >= 1 || salesOrder.PPN >= 1, // combined visibility
salesOrder.Discount >= 1, // visible only if the value >= 1
salesOrder.PPN >= 1, // visible only if the value >= 1
true // total always visible
};
var textValues = stats
.Select((v, i) => v ? footerValues[i] : null).OfType<string>()
.Union(Enumerable.Range(0, 4).Select(x => string.Empty).ToArray())
.Take(4)
.ToArray()
var footerValue = string.Join(Environment.NewLine, textValues);
如果統計生產
false, false, false, true
預期footerValue
將
"12345\r\n\r\n\r\n\r\n"
但實際的結果是
"12345\r\n"
有什麼不好的代碼?還是可以簡化?
'.Union更換
Enumerable.Range
(Enumerable.Range(0,4)。選擇(X =>的String.Empty).ToArray())'是毫無意義的。它只會返回一個字符串.Empty。 – 2014-09-12 16:56:16