如何将前导0添加到int变量

时间:2020-11-09 19:25:40

标签: c# asp.net .net .net-core

我有一个列表,其中包含int类型的instanceNumber属性,如果值小于10,我想添加前导0。例如,在该10,11,12之后为01,02 ... 09,等等。我尝试了以下代码,但没有用

 var sidList = _sidRepository.GetAllList().Where(q=>q.IsDeleted==false).OrderByDescending(q=>q.Id).ToList();
            if (sidList.Count > 0)
            {
                sidList.Where(w => w.InstanceNumber<10).ToList().
                    ForEach(s => s.InstanceNumber = s.InstanceNumber.Value.ToString("D").Length + 2);
            }

1 个答案:

答案 0 :(得分:0)

尝试一下:

var sidList = _sidRepository.GetAllList()
    .Where(q => !q.IsDeleted)
    .OrderByDescending(q => q.Id)
    .ToList();

if (sidList.Any())
{
    sidList
        .Where(w => w.InstanceNumber < 10)
        .ToList()
        .ForEach(s => s.InstanceNumber = s.InstanceNumber.Value.ToString("00").Length + 2);
}

我的建议:

var sidList = _sidRepository.GetAllList()
    .Where(q => !q.IsDeleted)
    .OrderByDescending(q => q.Id);

if (sidList.Any())
    foreach (var item in sidList.Where(i => i.InstanceNumber < 10))
        item.InstanceNumber = item.InstanceNumber.Value.ToString("00").Length + 2;

我的建议将返回一个IEnumerable<item>而不是一个List<item>,但是如果需要,您可以在以后使用一个.ToList()来处理它,但是您会从性能中受益,因为您会避免两次ToList(ing)。