Linq的两个条件

时间:2017-03-22 23:00:19

标签: c# linq

如果ID不为空,我有一段代码会自动删除所有短划线。我注意到这些也需要总共有9个数字。但是当你用0引导时,0会被自动切断。如何为id添加另一个条件。像

这样的东西

如果i.id.length< 9将0添加到前面,直到它等于9?

原始代码

retval.Add(new SpreadsheetColumnSetup<Row>("ID", i =>
    (i.Id == null)
        ? i.Id
        : i.Id.Replace("-", "")));

2 个答案:

答案 0 :(得分:3)

您可以使用string.PadLeft()

i => (i.Id == null ? i.Id : i.Id.Replace("-", "").PadLeft(9, '0'))

答案 1 :(得分:3)

使用%d方法作为@ itsme86建议。如果使用C#6 +

,还可以使用null条件运算符简化整个lambda
PadLeft