我必须填充字符串并返回它,然后才能对字符串执行子字符串。 有没有办法在填充后评估字符串并将两个语句合并为一行?
这有效
string numberOfRecords = allRecords.Count().ToString().PadLeft(8, '0');
numberOfRecords = numberOfRecords.Substring(numberOfRecords.Length-8,8);
但这不是
string numberOfRecords = allRecords.Count().ToString();
numberOfRecords = numberOfRecords.PadLeft(8, '0').Substring(numberOfRecords.Length-8,8);
答案 0 :(得分:0)
PadLeft(8, '0')
在C#中是不可变的。在第一种情况下,您正在执行numberOfRecords
并分配给PadLeft
。因此它包含更新的值(使用PadLeft
)。
但在第二种情况下,您正在执行numberOfRecords
,但numberOfRecords.Length
的值将相同。当allRecords.Count().ToString()
为原始值({{1}})并且可能抛出异常时,这将失败。